1

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

4

2 回答 2

1

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

于 2012-10-22T16:02:18.793 回答
0

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

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

于 2012-10-29T11:03:11.337 回答