将带逗号的文本文件导入 Excel
Import text files with commas into Excel
我有大量文件需要导入 Excel。我发现并部分修改了这段代码(我不记得在哪里,所以我不能相信),90% 以上的时间都有效。
Sub Extractions()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.DisplayStatusBar = False
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
FilesToOpen = Application.GetOpenFilename _
(fileFilter:="Microsoft Excel Files (*.*?), *.*?", MultiSelect:=True, Title:="Files to Import")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open fileName:=FilesToOpen(x)
Sheets().Move before:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = False
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
Resume
End Sub
我导入的大部分文件都很好,因为它们是 .csv 或 .txt。或 .xlsx 文件。但是,许多 .csv 和 .txt 文件在不同的行中包含逗号。当我导入它们时,它们将行分成两行,这会导致宏的后面部分出现问题。
当我正常导入文件时,没有出现逗号问题,文件导入到第一列,这是它需要的地方。
有什么方法可以修改上面的代码,只将文件导入到第一列,而忽略逗号吗?
所以在@R3uK 的帮助下,答案是
, Format:= 5
在
之后
Workbooks.Open fileName:=FilesToOpen(x)
我有大量文件需要导入 Excel。我发现并部分修改了这段代码(我不记得在哪里,所以我不能相信),90% 以上的时间都有效。
Sub Extractions()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.DisplayStatusBar = False
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
FilesToOpen = Application.GetOpenFilename _
(fileFilter:="Microsoft Excel Files (*.*?), *.*?", MultiSelect:=True, Title:="Files to Import")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open fileName:=FilesToOpen(x)
Sheets().Move before:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = False
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
Resume
End Sub
我导入的大部分文件都很好,因为它们是 .csv 或 .txt。或 .xlsx 文件。但是,许多 .csv 和 .txt 文件在不同的行中包含逗号。当我导入它们时,它们将行分成两行,这会导致宏的后面部分出现问题。
当我正常导入文件时,没有出现逗号问题,文件导入到第一列,这是它需要的地方。
有什么方法可以修改上面的代码,只将文件导入到第一列,而忽略逗号吗?
所以在@R3uK 的帮助下,答案是
, Format:= 5
在
之后Workbooks.Open fileName:=FilesToOpen(x)