При сохранении/открытии CSV-файлов в Excel разделителем по умолчанию является точка с запятой ;
, так как мне нужна запятая. ,
Я попытался изменить это, изменив языковые и региональные настройки, следуя нескольким другим сообщениям об этой проблеме (например,Как заставить Excel интерпретировать запятую как разделитель по умолчанию в CSV-файлах?).
Однако после изменения разделителя списка в этих настройках мой Excel продолжает сохранять файлы CSV с точкой с запятой. Это потому, что Excel был установлен, когда мой разделитель списка был установлен как точка с запятой? или есть еще какая-то настройка, которую я здесь упускаю?
решение1
Я нашел проблему. Мой десятичный разделитель в региональных настройках также был запятой (европейский), поэтому, даже когда мой разделитель списка был запятой, CSV сохранялся с точками с запятой. Теперь я изменил свой десятичный разделитель на точку, и теперь файл CSV создается правильно с запятыми в качестве разделителей. Я проверил это дважды и теперь знаю, что должно быть исключение: если десятичный разделитель является запятой, то разделитель списка будет точкой с запятой, даже если установлено иное.
решение2
Для экономии
Вам необходимо настроить разделитель списка в языковых и региональных настройках.прежнийдля сохранения файла -
Для открытия
Идти кДанные - Получить внешние данные - Из текста
выберите файл
Выбиратьразграниченный, Нажмите "Далее
и выберитеразделитель запятая
Нажмите «Готово»
Или вытащите его и используйте текст в столбцах.глянь сюда
решение3
Вот очень хороший макрос, который работает довольно хорошо:
Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub
решение4
Это немного устарело, но я столкнулся с той же проблемой:
CSV был разделен точкой с запятой ( ;
). Настройки системного разделителя (Windows) также установлены на точку с запятой.
- Если я открывал CSV вручную, файл разделялся правильно.
- Если я позволю VBA открыть его, он неправильно разделит его запятой.
Использование, Delimiter:=";"
по-видимому, работает только с .txt
.
ОДНАКО использование Local :=True
решило для меня проблему:
Workbooks.Open(Filename:=fullpath, Local:=True)