Excel 按宏另存为CSV-安静模式-VBA 2010

Excel 按宏另存为CSV-安静模式-VBA 2010,excel,vba,Excel,Vba,我正在编写一个宏,以将Excel工作表中的数据保存为CSV格式-VBA 2010 在完成所有操作后,我在宏的末尾有两个问题 1) 在命令ActiveWorkbook.SaveAs中,我使用了选项ConflictResolution:=xlLocalSessionChanges来保证覆盖同一文件夹中同名的文件,此选项应在安静模式下覆盖现有文件,而无需询问用户是否要覆盖现有文件 它在下面的语法中工作 ActiveWorkbook.SaveAs Filename:="C:\File1.xlsx", F

我正在编写一个宏,以将Excel工作表中的数据保存为CSV格式-VBA 2010

在完成所有操作后,我在宏的末尾有两个问题

1) 在命令
ActiveWorkbook.SaveAs
中,我使用了选项
ConflictResolution:=xlLocalSessionChanges
来保证覆盖同一文件夹中同名的文件,此选项应在安静模式下覆盖现有文件,而无需询问用户是否要覆盖现有文件

它在下面的语法中工作

ActiveWorkbook.SaveAs Filename:="C:\File1.xlsx", FileFormat:= _
  xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
ActiveWorkbook.SaveAs Filename:="C:\File1.csv", FileFormat:= _
  xlCSV, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
如果存在同名文件,则该文件将被覆盖 但此选项不起作用,尽管它在以正常Excel格式保存文件时起作用,但在保存为CSV时不起作用

但它在以下语法中不起作用

ActiveWorkbook.SaveAs Filename:="C:\File1.xlsx", FileFormat:= _
  xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
ActiveWorkbook.SaveAs Filename:="C:\File1.csv", FileFormat:= _
  xlCSV, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
我所说的“它不工作”的意思是,它没有覆盖现有的文件,并且仍然显示有同名文件存在的消息,并且询问用户是否要覆盖它

因为这是一个宏,所以我不想受到用户的任何干扰

2) 当我使用命令
ActiveWorkbook.Close
将文件转换为CSV后关闭文件时,我会收到消息“是否保存更改(是/否)”


我还想在没有此消息的情况下以安静模式保存文件。

对于项目2,请尝试以下操作:

ActiveWorkbook.Close False
它将毫无疑问地关闭


Jair Batista

对于第一部分,在执行SaveAs之前添加
Application.DisplayAlerts=False
,然后添加
Application.DisplayAlerts=True
。这将抑制覆盖消息并自动保存到旧文件。

谢谢,现在可以了对不起,但您能否告知在“ActiveWorkbook.Close”命令之后使用运算符“False”和“True”的区别?是否有任何参考来解释此类VBA选项?我的意思是不控制“另存为”消息。。。我的意思是将“另存为”消息中的“是”或“否”作为VB操作默认控制为“是”或“否”参数忽略消息“是否要保存更改(是/否)”。自动选择“否”。