Excel 文本到列格式化问题
Excel text to columns formatting to date issue
早上好,
我有一个宏可以将目录中的所有文本文件导入到工作簿中。这一直运行良好,没有任何格式或相关问题。
我遇到过似乎自动格式化的文本文件,我正在 troubl.e 尝试让它与文本到列一起工作。
文本文件中的数据:
#
#
#
# CELL : RESULT
#
0:0
1:0
2:0
3:0
4:0
5:0
6:0
7:0
8:0
9:0
10:0
11:0
12:0
13:0
14:0
15:0
16:0
17:0
18:0
19:0
20:0
21:0
22:0
23:0
24:0
25:
导入后:
# CELL : RESULT
#
0:00
1:00
2:00
3:00
4:00
5:00
6:00
7:00
8:00
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
24:00:00
文本到列之后:
#
#
#
# CELL RESULT
#
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
1/1/1900 12 0 12:00 AM
复制粘贴后,数据看起来没问题。
我试过将数据转换为一般数据或文本,但这会将数据转换为小数。我也尝试 trim 最后一个 ":*"
出来,但也失败了。
如果有人对正在发生的事情有任何指导,我将不胜感激。我用来导入文本文件的代码是:
Sub Import_Text_Files()
Dim fPath As String
Dim fCSV As String
Dim wbCSV As Workbook
Dim wbMST As Workbook
Set wbMST = ThisWorkbook
'this is to set the directory in which the text files are
fPath = Sheets("Console").Cells(16, 12).Value
'turn off screen updating for speed
Application.ScreenUpdating = False
'start the text file listing
fCSV = Dir(fPath & "*.txt")
On Error Resume Next
Do While Len(fCSV) 0
'open a CSV file
Set wbCSV = Workbooks.Open(fPath & fCSV)
'delete sheet if it exists
wbMST.Sheets(ActiveSheet.Name).Delete
'move new sheet into workbook
ActiveSheet.Move After:=wbMST.Sheets(wbMST.Sheets.Count)
'ready next CSV
fCSV = Dir
Loop
Set wbCSV = Nothing
End Sub
很抱歉我无法 post 此帐户上的图片,因为我没有声誉并且多年未使用此网站。然而,我有他们。
您可以使用 Workbooks.OpenText
而不是 Workbooks.Open
如果这样做,您可以将冒号指定为分隔符并在 Excel 有机会将其更改为它认为您可能更喜欢的内容之前将其拆分(在本例中为次)。
在文本文件上使用 Workbooks.Open
很少是个好主意。
查看VBA帮助以获取有关`Workbooks.OpenText
的更多信息
示例代码:
Workbooks.OpenText Filename:=fullPathofTextFile, _
Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, OtherChar:=":", FieldInfo:= _
Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
您也可以使用 Power Query
(又名 Get&Transform
)通过数据连接完成同样的事情,必要时可以刷新数据连接。
注释中提到的 ADO
选项在文本文件为 UTF-8 时特别有用。
早上好,
我有一个宏可以将目录中的所有文本文件导入到工作簿中。这一直运行良好,没有任何格式或相关问题。
我遇到过似乎自动格式化的文本文件,我正在 troubl.e 尝试让它与文本到列一起工作。
文本文件中的数据:
#
#
#
# CELL : RESULT
#
0:0
1:0
2:0
3:0
4:0
5:0
6:0
7:0
8:0
9:0
10:0
11:0
12:0
13:0
14:0
15:0
16:0
17:0
18:0
19:0
20:0
21:0
22:0
23:0
24:0
25:
导入后:
# CELL : RESULT
#
0:00
1:00
2:00
3:00
4:00
5:00
6:00
7:00
8:00
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
24:00:00
文本到列之后:
#
#
#
# CELL RESULT
#
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 AM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
0:00 0 12:00 PM
1/1/1900 12 0 12:00 AM
复制粘贴后,数据看起来没问题。
我试过将数据转换为一般数据或文本,但这会将数据转换为小数。我也尝试 trim 最后一个 ":*"
出来,但也失败了。
如果有人对正在发生的事情有任何指导,我将不胜感激。我用来导入文本文件的代码是:
Sub Import_Text_Files()
Dim fPath As String
Dim fCSV As String
Dim wbCSV As Workbook
Dim wbMST As Workbook
Set wbMST = ThisWorkbook
'this is to set the directory in which the text files are
fPath = Sheets("Console").Cells(16, 12).Value
'turn off screen updating for speed
Application.ScreenUpdating = False
'start the text file listing
fCSV = Dir(fPath & "*.txt")
On Error Resume Next
Do While Len(fCSV) 0
'open a CSV file
Set wbCSV = Workbooks.Open(fPath & fCSV)
'delete sheet if it exists
wbMST.Sheets(ActiveSheet.Name).Delete
'move new sheet into workbook
ActiveSheet.Move After:=wbMST.Sheets(wbMST.Sheets.Count)
'ready next CSV
fCSV = Dir
Loop
Set wbCSV = Nothing
End Sub
很抱歉我无法 post 此帐户上的图片,因为我没有声誉并且多年未使用此网站。然而,我有他们。
您可以使用 Workbooks.OpenText
Workbooks.Open
如果这样做,您可以将冒号指定为分隔符并在 Excel 有机会将其更改为它认为您可能更喜欢的内容之前将其拆分(在本例中为次)。
在文本文件上使用 Workbooks.Open
很少是个好主意。
查看VBA帮助以获取有关`Workbooks.OpenText
的更多信息示例代码:
Workbooks.OpenText Filename:=fullPathofTextFile, _
Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, OtherChar:=":", FieldInfo:= _
Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
您也可以使用 Power Query
(又名 Get&Transform
)通过数据连接完成同样的事情,必要时可以刷新数据连接。
注释中提到的 ADO
选项在文本文件为 UTF-8 时特别有用。