Excel VBA代碼通過Application.OnTime Now + TimeSerial(x,x,x)
運行重複循環,這是一個長期未解決的問題。用戶會發現他們的代碼在幾天內運行良好,可能會或可能不會神祕地停止。隨機斷點未知的原因
我正面臨着這樣的情況,希望能夠解決它。我已經閱讀了30多個論壇答案,其中一些是由有經驗的開發人員撰寫的,並且達成了這一理解我的結論和問題如下。
的結論是,Excel的隨機進入一個break mode
但爲什麼發生這種情況時,更是這樣,爲什麼它是隨機發生,沒有人知道的原因。
那麼我們應該得出結論:實際上這是隨機發生的嗎?而且Excel VBA不像其他語言那麼強大。
一些注意事項:
- 我知道這可以按
Ctrl+Break
兩次來解決。這並不能解釋爲什麼我們必須首先做到這一點。 - 我意識到這個錯誤是獨立於代碼的。它會發生在簡單的和涉及的程序中。
- 嘗試了多種方法來模擬這個錯誤,我的意思是很多 - 多個ADODB SQL連接和查詢,宏運行時使用多個單元格編輯
Application.OnTime
遞歸調用,我無法複製該錯誤。它確實是隨機的。 - 我只運行一個工作簿和一個Excel實例。
- 有人說,對於我們在調試中所做的每個斷點,斷點仍保留在內存中。然後當我們將來運行一個宏時,寫入這部分內存會觸發這個隨機中斷。這是一個似是而非的解釋,並確實得出結論,這個錯誤是隨機的。我們無法檢查VBA中的內存。
即使不是爲了解決這個問題,我也需要一些東西來證明我的老闆。
對於在當前會話期間或在該工作簿期間以前沒有按下過「Ctrl + Break」的用戶,這是發生了什麼? –
當我在當前會話或該工作簿中按Ctrl + Break時,無法確定是否遇到此錯誤。 1.如果答案是肯定的,那麼在運行代碼之前按Ctrl + Break,它仍然是一個隨機錯誤。 2。如果答案爲否,在運行代碼之前用戶不知道Ctrl + Break是否被按下,它仍然是一個隨機錯誤。 我在質疑它的隨機性和它的原因。 –