這裏是場景。我有多個Excel工作簿,可以相互複製和粘貼數據。所以這個宏的工作原理是從一個工作簿open.copy.close然後open.paste.close到另一個。我正在創建一個函數來在文件關閉時自動運行宏。如何讓vba代碼只在活動工作簿上運行自動關閉?
這是問題所在,當我單擊工作簿1中的宏按鈕時,它應該從工作簿2打開.copy.close。但是,由於在工作簿2中關閉文件功能時會自動運行,所以會出現錯誤(2個宏不能同時運行)任何解決方案?我正在尋找解決方案,只有在文件關閉時自動運行宏如果它是一個活躍的工作簿。以下是我現在有:
Workbook 1
Sub workbook_beforeclose(cancel As Boolean)
Application.Run "Sheet1.UpdateYellowTabs_Click"
End Sub
Workbook 2
Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook.BeforeClose
Application.Run "Sheet12.UpdateGreen_Click"
End Sub
如何編寫它在工作簿中的代碼只能使這個運行,只有當打開/關閉受宏觀時,它的主動/人類用戶和關閉不?
謝謝!
嗨,我試過你的代碼,它實質上是我想要做的。但是,它不起作用。我希望它能夠在例程'workbook_beforeclose'上運行,只有當包含它的工作簿是'活動工作簿'時。我是否需要激活和停用工作簿,以便宏知道哪個是哪個? – Carmen
@Carmen,本質上,這個想法是,如果你通過'wb1'的代碼關閉'wb2',通過激活'wb1',找到一種在關閉'wb2'前關閉它的方法。像'wb1.Activate:wb2.close'。 –
我瞭解它的技術部分,並從此開始嘗試使用它。我已經分別激活了wb1和wb2,並按照建議插入了'wb1.activate:wb2.close',但它仍然不起作用。是否將代碼添加到工作簿代碼或我的模塊/工作表中? '子Workbook_BeforeClose(取消正如布爾) 如果不Application.ActiveWorkbook是我,然後退出子 Application.Run「Sheet12.UpdateGreen_Click」 結束Sub'我得到這個錯誤,我應該是每個工作簿定義後,即使激活和停用。 – Carmen