Excel 关闭工作簿并在另一个工作簿中完成VBA过程

Excel 关闭工作簿并在另一个工作簿中完成VBA过程,excel,vba,Excel,Vba,我使用以下VBA创建所用电子表格的副本: Sub Files() ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm" Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False ThisWorkb

我使用以下VBA创建所用电子表格的副本:

Sub Files()
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
ThisWorkbook.Close SaveChanges = False
MsgBox ("File saved successfully on desktop.")
End Sub
此代码将Excel文件的副本放在桌面上。完成此操作后,将打开新创建的Excel文件,关闭另一个Excel文件
但是,另一个的关闭也会导致VBA停止;因此,
MsgBox(“文件已成功保存在桌面上”)
不再显示


如何更改VBA,使其在新打开的电子表格中继续并显示消息框?

此工作簿。Close SaveChanges=False
关闭工作簿。VBA代码在内部,因此不会出现
MsgBox

最简单的解决方案是对代码进行如下更改:

MsgBox ("File saved successfully on desktop.")
ThisWorkbook.Close SaveChanges = False
要确保您的MsgBox不会“撒谎”,请引入错误捕获:

Sub Files()

    On Error GoTo Files_Error

    ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
    Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
    MsgBox ("File saved successfully on desktop.")
    ThisWorkbook.Close SaveChanges = False

    On Error GoTo 0
    Exit Sub

Files_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Files of Sub Modul1"

End Sub

如果文件在
MsgBox
之后无法保存,将弹出一个新的
MsgBox

再次感谢您的帮助。