通过macros保存为CSV – 安静模式 – VBA 2010
我写一个macros,将数据保存在Excel工作表中作为CSV格式 – VBA 2010
在所有事情完成之后,我只在macros的末尾有两个问题。
1)在命令ActiveWorkbook.SaveAs
我使用了选项ConflictResolution:=xlLocalSessionChanges
来保证覆盖文件,如果存在同名的文件夹中,这个选项应该在安静模式下覆盖现有文件,而不询问用户是否想要覆盖现有的文件或不。
它正在使用下面的语法
ActiveWorkbook.SaveAs Filename:="C:\File1.xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
如果存在同名的文件,则它将被覆盖。但是,这个选项不起作用,例如,当以正常的Excel格式保存文件时它正在工作,但在保存为CSV时不起作用。
但是它在下面的语法中不起作用
ActiveWorkbook.SaveAs Filename:="C:\File1.csv", FileFormat:= _ xlCSV, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
我的意思是“它不工作”是不覆盖现有文件,仍然显示存在同名文件的消息,并询问用户是否要覆盖它。
因为这是一个macros,所以我不希望用户的任何干扰。
2)当我使用命令ActiveWorkbook.Close
转换为CSV后closures文件,我有消息“你想保存更改(是/否)。
我也想在没有这个消息的情况下以安静模式保存文件。
对于第一部分,在执行SaveAs之前添加Application.DisplayAlerts = False
,并在之后添加Application.DisplayAlerts = True
。 这抑制了覆盖消息并自动保存在旧文件上。
对于第2项,试试这个:
ActiveWorkbook.Close False
它将没有问题地closures。
Jair Batista