Макрос VBA сохраняет файл .csv с неверными разделителями - PullRequest
0 голосов
/ 12 марта 2019

Мне нужно сохранить электронную таблицу из Excel в виде файла .csv, где разделителями являются точки с запятой. Проблема в том, что мой макрос сохраняет файл .csv с запятыми в качестве разделителей

вот код, который я использовал: (* s используются вместе с путем к каталогу)

 sub test    
   Cells.Copy
            Workbooks.Add
                Range("A1").PasteSpecial
            ActiveWorkbook.SaveAs Filename:="*****" _ 
                & ActiveWorkbook.Name & ".csv", FileFormat:=xlCSV
            ActiveWorkbook.Close SaveChanges:=False
end sub

Забавно, что когда я сохраняю таблицу вручную, с разделителями все в порядке. Поэтому я попытался записать макрос для этого, это код, сгенерированный Excel:

Sub Makro2()

Cells.Select
   Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\****\Zošit17.csv", FileFormat:= _
    xlCSV, CreateBackup:=False
ActiveWindow.Close
End Sub

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

Интересно, почему это происходит, потому что я установил системные разделители на ";" в качестве разделителя списка и "," в качестве десятичного разделителя. Кроме того, My Excel настроен на использование системных разделителей.

спасибо, ребята, за помощь в этом разобраться :)

1 Ответ

0 голосов
/ 12 марта 2019

Как сохранить CSV-файл, разделенный точкой с запятой, используя vba?

Вам нужно добавить

Local:=True

Итак:

ActiveWorkbook.SaveAs Filename:="C:\Users\****\Zošit17.csv", _
                      FileFormat:= xlCSV, CreateBackup:=False, _
                      Local:=True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...