Excel 关闭工作簿并在另一个工作簿中完成VBA过程
我使用以下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
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
。再次感谢您的帮助。