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:
- Go to Start>Settings>Regional And Language Options
- Click on the Customize button
- Next to List Separator type in a semi-colon (;)
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.
i've just checked this because had same problem. Filename has no functionality in this case.
This is what worked for me:
In regional settings -> ; <- as list separator. It is also important not to save changes when closing -> with Close you have to use
False
.Use xlSCVMSDOS instread of xlCSV
It worked for me
To use vbs script following construction succeded:
.SaveAs Filename, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
where arguments are:
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)
Just use this code: ActiveWorkbook.SaveAs "My File.csv", xlCSV, Local:=True
(don't use: Filename:= )
No need to declare all this variables, just add local:=true in the end of your SaveAs method, like so:
I ran into the same issue and after contemplating trying to change the "line separator" in Regional Settings using VBA code and Kernel calls I decided it would be way more of a pain, so instead I just found some examples of using the Scripting.FileSystemObject to accomplish my needs instead.
The following code will take an existing csv file and replace all the commas with the tilde "~" character.
You can then just call the commaReplace sub routine from your sub routine which is creating the csv file.
Hope it helps someone!