通过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