I copy data into a spreadsheet, use VBA to format it, then save that sheet into a CSV file.
I use the following code:
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV
ws is the worksheet that I saved.
This gives me a comma-delimited CSV file.
I would like to save that sheet into a semicolon-delimited file.
I found the following:
I followed the procedure above and changed my code to:
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV, Local:=True
I still get a comma-delimited CSV file as output.
I am using Excel 2003 and my OS is Windows XP.
Depending on your Excel's regional setting, your default delimiter/separator may either be using semicolons (;) or commas (,) to separate items in a CSV file.
i've just checked this because had same problem. Filename has no functionality in this case.
This is what worked for me:
With ActiveWorkbook
.SaveAs Filename:="My File.csv", FileFormat:=xlCSV, Local:=True
.Close False
End With
In regional settings -> ; <- as list separator. It is also important not to save changes when closing -> with Close you have to use False
.
To use vbs script following construction succeded:
.SaveAs Filename, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
where arguments are:
Object Filename,
Object FileFormat,
Object Password,
Object WriteResPassword,
Object ReadOnlyRecommended,
Object CreateBackup,
XlSaveAsAccessMode AccessMode,
Object ConflictResolution,
Object AddToMru,
Object TextCodepage,
Object TextVisualLayout,
Object Local
SourceLink : https://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.workbook.saveas.aspx
Last "1" in "SaveAs" function is equal to Local=True
Also, the semicolon must be defined as the list separator in OS regional settings (see answers above)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With