用分号分隔符保存为CSV

我目前使用这个function来保存,但我有一个问题:

Private Sub spara() ActiveWorkbook.SaveAs Filename:="T:\filepath+ ActiveWorkbook.Name", _ FileFormat:=xlCSV, CreateBackup:=False End Sub 

它会自动保存,但我需要它来保存; 在其文件中。 有没有可能改变它如何保存?

我试着用googlesearch这个问题,但所有有关.csv文件保存的macros只是如何保存在.csv中,以及如何将多个工作表分割为.csv。

你的Excel使用哪种语言? 如果您的母语使用“;” 作为默认值,您可以传递参数“local:= True”

 ActiveWorkbook.SaveAs Filename:="C:\Temp\Fredi.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True 

如果没有,你唯一的select是search和replace之后…

更改Excel选项(高级,编辑选项)设置小数分隔符, (显然(!))

这个问题很有可能只能用Excel VBA解决。 问题是,虽然Excel Save As...使用机器语言环境定义列表分隔符值,但Excel VBA始终使用en-US语言环境,因此它始终使用列表分隔符。

我build议保存一个CSV,然后使用自定义控制台应用程序/脚本进行后期处理。 有很多可用的CSVparsing器可以读取,-csv ,然后将其另存为;-csv

我一直在寻找这帮助解决类似的问题,我有,我有一个Excel表格,我出口到CSV文件,这是然后在其他地方加载,但需要使用分号而不是逗号为字符分离,这个工作很好,当我手动导出文件,因为我已经改变了以下控制面板>>地区和语言>>附加设置>>列表分隔符从逗号分号。 但是当我试图通过VBA自动化它默认回到逗号,以解决我添加了基督教绍尔build议的地方paprameter然后拿起事实,我已经改变了我的区域设置。

 ActiveWorkbook.SaveAs Filename:="Filename.txt", FileFormat:=xlCSV, CreateBackup:=False, Local:=True 

感谢基督教的指针。

我解决了它closures工作簿时添加“SaveChanges:= False”

 With ActiveWorkbook .SaveAs Filename:="T:\filepath+ ActiveWorkbook.Name", FileFormat:=xlCSV, Local:=True .Close SaveChanges:=False End With 

对于有此代码问题的人

 dim wa as Workbook Workbooks.OpenText FileName:=path2file, _ DataType:=xlDelimited, Semicolon:=True, Local:=True set wa = ActiveWorkbook wa.SaveAs FileName:=path2file, FileFormat:=xlCSV, _ ConflictResolution:=xlLocalSessionChanges, Local:=True wa.Close False 

第二行是非常重要的,如果wa.Close False不存在,它会要求批准保存,或者如果wa.Close True将取代“;” 为“,”。

进入当地设置并制作“;” 列表分隔符,VBA仍然用“,”分隔。 修改了上面的代码,并完成了。

希望这会给一些人一些启示