如何保存使用vba的分号分隔csv文件?
最近,我需要将一些数据复制到电子表格中,使用VBA格式化,然后将该表格保存到CSV文件中。 我使用下面的代码:
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV
ws是我保存的工作表。
这会给我一个逗号分隔的CSV文件。
但是,我想将该表保存为以分号分隔的文件。 我做了一些Googlesearch,发现了以下解决scheme:
- 转到开始>设置>区域和语言选项
- 点击自定义button
- 列表分隔符types旁边分号(;)
我已经按照上面的程序,并将我的代码更改为:
ws.SaveAs Filename:=filestr, Fileformat:=xlCSV, Local:=True
但是我仍然得到一个以逗号分隔的CSV文件作为输出。
我使用的Excel版本是Excel 2003,我的操作系统是Windows XP
任何人都可以build议如何保存使用VBA的分号分隔的文件?
我刚刚检查过,因为有同样的问题。 在这种情况下,文件名没有function。
这对我来说是有效的:
With ActiveWorkbook .SaveAs Filename:="My File.csv", FileFormat:=xlCSV, Local:=True .Close False End With
在区域设置 – >; < – 作为列表分隔符。 closures时不保存更改也很重要 – >closures时必须使用False
。
不需要声明所有这些variables,只需在SaveAs方法的末尾添加local:= true,如下所示:
ActiveWorkbook.SaveAs Filename:="C:/Path/TryMe.csv", FileFormat:=xlCSV, Local:=True
只需使用以下代码:ActiveWorkbook.SaveAs“My File.csv”,xlCSV,Local:= True
(不要使用:文件名:=)
在构build成功后使用vbs脚本:
.SaveAs文件名,6,0,0,0,0,0,0,0,0,1
参数是:
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
“SaveAs”函数中的最后一个“1”等于Local = True
此外,分号必须定义为OS区域设置中的列表分隔符(请参见上面的答案)