2011-05-17 49 views
1

可能重複:
Excel VBA App stops spontaneously with message 「Code execution has been halted」爲什麼VBA停止,如果EnableCancelKey沒有被禁用

爲什麼VBA執行停止在任意點與消息的代碼中「執行代碼已被中斷「除非以下已被指定:

Application.EnableCancelKey = xlDisabled 

在c停止ode類似於Ctrl + Break鍵,因此禁用取消鍵(Ctrl + Break)可避免執行中的停止。

但是,禁用取消密鑰對我來說是一個壞主意,因爲我的代碼中的某些場景可能導致無限循環(例如,如果OLE請求從未完成),其中使用Ctrl + Break的能力是無價之寶。

我不太喜歡將EnableCancelKey設置爲xlErrorHandler。如果我能夠理解代碼中斷的原因並避免它,而不是改變取消密鑰的行爲,那將會更好。

回答

6

這很可能是編譯時創建的p代碼的損壞。有些人通過從調試菜單中選擇清除所有斷點取得了成功。堅如磐石的方法是導出所有模塊,刪除它們,然後重新導入它們。這種通過純文本的往返行程會強制完成p代碼的重建。 Google爲Rob Bovey的Code Cleaner提供了一個免費的實用程序,可以自動執行此過程。

+1

本週我第一次使用了Rob Bovey的CodeCleaner工具,我可以證明它易於安裝和使用簡單 – 2011-05-17 18:04:43

相關問題