使用VBA处理保存错误消息

我有以下macros来自动保存工作簿:

ActiveWorkbook.SaveAs Filename:=Workbooks(2).Path & "\" & ActiveWorkbook.Name ActiveWorkbook.Close savechanges:=True 

但如果目标文件夹已经有这个名字的文件,我有问题,我从Excel中得到一个消息,说这个文件已经存在,是否我想要取代它。

我需要的是以下几点:

  • 如果用户selectYes ,则replace现有的文件
  • 如果用户selectNo (目前我得到一个运行时错误),那么它将V2保存在文件名的末尾,如果存在,那么V3等等
  • 如果用户selectCancel ,那么他们看到一条消息, 你确定要取消 。 如果确认则取消,否则返回错误信息。

或者,也许可以编辑代码,以便当它检查文件夹中是否已存在文件时saves as如果存在,则将其另存为v2。

你可能不得不重构你当前的代码来按原样使用它 – 但是我认为这是你正在寻找的逻辑:

 Dim saveName As Variant retry: saveName = Application.GetSaveAsFileName If Not saveName = False Then If Len(Dir$(saveName)) = 0 Then ActiveWorkbook.SaveAs saveName Else MsgBox "Workbook already exists, please choose a different name.", vbOkOnly GoTo retry: End If Else MsgBox "User cancelled save.", vbInformation" End If 

就像是

 If Dir(strfilename) = "" Then Else strfilename=Application.GetSaveAsFilename End If ActiveWorkbook.SaveAs strfilename, XlFileFormat.xlOpenXMLWorkbookMacroEnabled