Excel 2011 (Mac) vba: сбой кодировки текста при импорте текстовых файлов как QueryTables - PullRequest
1 голос
/ 26 ноября 2011

Мне нужно импортировать текстовые файлы в листы Excel.Текстовые файлы поступают как с Mac, так и с ПК и содержат символы разных языков.Для Excel 2004 (ПК) я успешно использовал код vba, как показано ниже, для преобразования текста в кодировке Mac в кодирование на ПК:

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 для преобразования кодировки с ПКна Mac, используя

.TextFilePlatform = xlWindows '=2

, как это предлагается при запуске устройства записи макросов.Выполнение импорта вручную прекрасно работает, меняя кодировку с ПК на Mac, но программа vba, запущенная в Excel 2011, вообще не меняет кодировку.Параметр TextFilePlatform может (в моей версии Excel 2011; версии на разных языках здесь могут отличаться) быть установленным на 1, 2 или 3 (любое другое целое число от -1000000 до 1000000 дает ошибку 5), и результирующий текст выглядит именно такто же самое для этих трех случаев.Существуют ли какие-либо другие настройки, которые отвергают мою попытку конвертировать кодировку текста?Любое предложение с благодарностью!

Редактировать: я подтвердил, что код с .TextFilePlatform = xlWindows правильно переводит кодированный в Windows текст в кодировку Mac для Excel 10 (2001) и Excel 11 (2004), в отличие от случая для Excel 2011, описанного выше,

Ответы [ 2 ]

1 голос
/ 22 октября 2012

Невозможно добиться этого на Mac, единственное решение - запустить скрипт с windows и вернуть файл в mac

0 голосов
/ 29 октября 2012

Вот хорошее онлайн решение Zoho Sheet VBA

Да, он хорошо работает с вашим Microsoft Excel VBA.

...