![](/img/trans.png)
[英]How to execute a vba procedure in your current workbook against another workbook
[英]Close workbook and finish VBA procedure in another workbook
我使用以下 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 文件並關閉另一個文件。
但是,另一個的關閉也會導致 VBA 停止; 因此, MsgBox ("File saved successfully on desktop.")
不再出現。
我如何更改 VBA 以便它在新打開的電子表格中繼續並顯示消息框?
ThisWorkbook.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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.