如何保存使用vba的分号分隔csv文件?

最近,我需要将一些数据复制到电子表格中,使用VBA格式化,然后将该表格保存到CSV文件中。 我使用下面的代码:

ws.SaveAs Filename:=filestr, Fileformat:=xlCSV 

ws是我保存的工作表。

这会给我一个逗号分隔的CSV文件。

但是,我想将该表保存为以分号分隔的文件。 我做了一些Googlesearch,发现了以下解决scheme:

  1. 转到开始>设置>区域和语言选项
  2. 点击自定义button
  3. 列表分隔符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区域设置中的列表分隔符(请参见上面的答案)