Excel 2011(Mac)vba:将文本文件导入为QueryTable时,文本编码失败

时间:2011-11-26 18:33:18

标签: vba excel-2011

我需要将文本文件导入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的情况相反。

2 个答案:

答案 0 :(得分:1)

在Mac上无法实现这一点,唯一的解决方案是使用windows运行脚本并将文件返回给mac

答案 1 :(得分:0)

这是一个不错的在线解决方案Zoho Sheet VBA

是的,它适用于您的Microsoft Excel VBA。