當我在Excel中執行我的代碼(需要3-4分鐘執行)時,我點擊了某些內容或在我的用戶窗體中,它凍結,變白,幾乎崩潰......當執行準備就緒一切都很好。在執行過程中Excel凍結
當然,在執行過程中我無法在excel中工作是正常的,但我怎樣才能避免excel的「崩潰」?
當我在Excel中執行我的代碼(需要3-4分鐘執行)時,我點擊了某些內容或在我的用戶窗體中,它凍結,變白,幾乎崩潰......當執行準備就緒一切都很好。在執行過程中Excel凍結
當然,在執行過程中我無法在excel中工作是正常的,但我怎樣才能避免excel的「崩潰」?
您需要做的是創建一個覆蓋Excel UI的自定義UserForm,如Progress Bar。您還需要研究如何強制您的表單停留在ontop上,很像modal form
。您不能使用modal form
,因爲他們停止執行。
嘿,我有一個進度條窗體,我需要添加哪些行? – user2156096 2013-03-15 18:34:37
@ user2156096使用['DoEvents'](http://msdn.microsoft.com/zh-cn/library/aa231254%28v=vs.60%29.aspx)函數查看 – Brad 2013-03-15 19:53:43
防止這類問題的最佳方法是對代碼進行基準測試,以確定需要這麼長時間。如果您的代碼需要超過3分鐘才能運行,那麼您幾乎可以肯定有優化的空間。
這裏有你需要採取的步驟:正在執行的代碼內
一個臭名昭着的慢速反模式要注意的是在循環中選擇事物。
確保沒有無限循環讓excel無響應後,嘗試優化代碼。
我發現this關於vba-excel代碼優化的一個非常有趣的閱讀,其中一些實踐實際上對我寫的一個耗時又耗時的模塊有影響。希望能幫助到你。
你有代碼中的循環嗎?
如果是這樣,請在初始化循環後添加以下行,它應該有助於解決問題!
DoEvents
沒有「幾乎崩潰」這樣的事情 - 它崩潰了,或者它不崩潰。 – 2013-03-15 15:52:07
當代碼正在運行時,不要單擊任何東西在Excel中... – 2013-03-15 16:16:07