我需要将文本文件导入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的情况相反。
答案 0 :(得分:1)
在Mac上无法实现这一点,唯一的解决方案是使用windows运行脚本并将文件返回给mac
答案 1 :(得分:0)
这是一个不错的在线解决方案Zoho Sheet VBA
是的,它适用于您的Microsoft Excel VBA。