2016-04-22 48 views
0

正如標題所示,我在Excel的Workbook_BeforeClose事件處理程序中遇到問題。我知道我正在使用正確的方法簽名(如下所示),因爲它在過去有效,並且我已經將事件處理程序正確放置在VBA編輯器的「ThisWorkbook」模塊中。但是,我注意到,無論何時我在VBE中(在其他模塊中)執行大量編碼,都不會執行此方法。即使當我在內部放置斷點時,在工作簿關閉之前斷點也不會被擊中。再次,這隻會發生,如果我已經搞亂VBE中的其他模塊;如果我只是打開工作簿並立即關閉它,這個方法運行良好並且斷點被擊中。保存或不保存工作簿似乎沒有什麼區別,並且Excel 2013和2016中出現此問題(尚未嘗試在早期版本中打開工作簿)。這個問題真的開始阻礙我的工作流程,所以如果有人想到爲什麼我的Workbook_BeforeClose處理程序沒有被調用,我將非常感謝幫助!Workbook_BeforeClose在使用VBA編輯器後不能執行

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    'More code... 
End Sub 

回答

0

posting this question上的Excel先生論壇結束後,我得到了解決辦法:有的,我是編輯包含的優化代碼的其他模塊。這包括在宏運行時禁用應用程序事件,然後在完成後將其重新打開。然而,在調試的時候,我顯然偶爾會在宏完成之前停止它,所以應用程序事件永遠不會被重新開啓!

所以現在,我所要做的就是在立即窗口中執行「Application.EnableEvents = True」,然後嘗試關閉工作簿,並且我的事件處理程序運行良好!