我需要将文本文件导入 Excel 工作表。文本文件来自 Mac 和 PC,包含各种语言的字符。对于 Excel 2004 (PC),我已成功使用下面的 vba 代码将 Mac 编码的文本转换为 PC 编码:
Worksheets("A").Cells.Clear
pth = Application.GetOpenFilename()
With Worksheets("A").QueryTables.Add(Connection:="TEXT;" & pth, _
Destination:=Worksheets("A").Range("A1"))
.TextFilePlatform = 10000
.TextFileColumnDataTypes = Array(xlTextFormat)
.Refresh
End With
Worksheets("A").QueryTables(1).Delete
我正在尝试使用 Excel 2011 的类似代码将编码从 PC 转换为 Mac,使用
.TextFilePlatform = xlWindows '=2
正如运行宏记录器所建议的那样。手动进行导入工作完美,将编码从 PC 更改为 Mac,但在 Excel 2011 中运行的 vba 程序根本不会更改编码。TextFilePlatform 参数可以(在我的 Excel 2011 版本中;不同的语言版本在这里可能不同)设置为 1、2 或 3(从 -1000000 到 1000000 的任何其他整数都会给出错误 5),并且生成的文本看起来与这三种情况相同。是否有其他设置可以推翻我转换文本编码的尝试?任何建议都非常感谢!
编辑:我已经确认带有 .TextFilePlatform = xlWindows 的代码可以正确地将 Windows 编码文本转换为 Excel 10 (2001) 和 Excel 11 (2004) 的 mac 编码,这与上述 Excel 2011 的情况相反。