Из VBA я рекомендую поискать метод в MSDN и вручную указывать каждый параметр, по моему опыту, это устраняет большинство региональных проблем.

ткрыть файл CSV, разделенный точкой с запятой, с помощью VBA в Excel 2000?

Пример данных

An ID;TEST20090222
A Name;Firstname Surname
A Date;11.05.2000

Country:;SomeCountryName
Currency;EUR
CostA;
CostB;
CostC;
Part1;10;20;30
Part2;;;;
Part3;34;56;87

Код

В Excel2003 11.8231.8221 SP3 с VBA 6.5.1025, я могу открыть файл с разделителями точкой с запятой со следующим кодом VBA:

Workbooks.OpenText filename:=myFilename, _
    DataType:=xlDelimited, Semicolon:=True, Local:=True

Тем не менее, когда тот же код выполняется в Excel2000 9.0.8961 SP1 с VBA 6.5.1025, я получаю следующую ошибку:

Ошибка компиляции: Именованный аргумент не найден

Это - я думаю - потому что Excel 2000 не знает именованный аргумент "Local".

Поэтому я удалил часть "Local: = True". Но проблема в том, что вся строка из файла CSV записывается в одну ячейку, а не разбивается на отдельные части, разделенные точкой с запятой.

Я искал в Интернете решение, но не нашел ничего полезного и лаконичного.

Есть идеи?

[Обновление 17.02.2009]

Я попробовал предложение отпользователь lc с макро-рекордером. Тем не менее, результаты были запутанными.

Когда я открываю файл CSV с помощью меню Файл-> Открыть ... и затем выбираю файл CSV, данные, разделенные точкой с запятой, анализируются правильно. И записанный код так же прост, как:

Workbooks.Open filename:= _
               "D:\testdata\Example 01 CSV\input.csv"

Но когда я использую этот код VBA в своем макросе, каждая строка снова попадает в одну ячейку.

По предложениюпользователь barrowcЯ также изменил настройки Windows «Язык и региональные стандарты» с «Немецкий (Швейцария)» на «Английский (США)». Даже после перезапуска Excel ничего не изменилось, такая же проблема.

Интересно, почему это работает напользователь Remouсистема. Какие региональные и языковые настройки у вас есть?

Ответы на вопрос(8)

Ваш ответ на вопрос