Из 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система. Какие региональные и языковые настройки у вас есть?