3
这个问题是从以前的问题here一个遵循。放在哪里来源:= 65001代码
基于由@Jeeped答案,似乎解决该问题的最好办法是插入的这部分代码到宏:
Origin:=65001
这是为了迫使我的代码导入UTF-8格式的文件。
现在的问题出现,我可以不知道如何或在哪里我的宏,将上面的代码。我有以下宏(我在网上找到 - 但不记得在哪里,所以不能得分),将大量文件导入工作簿,为每个文件创建电子表格。
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), Delimiter:=Chr(124)
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
有关如何解决此问题的任何建议?编辑1:
感谢@Rory的建议。经过更多调查,看起来Origin:=65001
不是Workbook.Open
中的有效条目。
因此,我想知道在使用上面的代码导入到MFGI时,是否有任何方法可以保留原始格式设置为UTF-8的文本文件?
你会在此添加:'Workbooks.Open名:= FilesToOpen(X),分隔符:= CHR(124),产地:= 65001'。如果文件是文本,看起来应该使用'Workbooks.OpenText'。 – Rory
@Rory该文件用于同时加载约40个不同的文件。其他方法一次只能打开1个文件,并为每个文件打开单独的电子表格 – Clauric
'Workbooks.Open'的行为方式相同。 – Rory