據我所知,Application.ScreenUpdating = true值被保留,直到設置了Application.ScreenUpdating = false。但是,這個價值的「終生」是什麼?在打開工作表時,是否在啓動和結束時調用它的過程?Excel 2010中的Application.ScreenUpdating值的生命週期是什麼?
製造類,以保持ScreenUpdating值一致,以我的需求:
- 初始化類
- 集ScreenUpdating =假
- 在手術結束時或在錯誤的情況下恢復的值設置爲True。
該類處理這種情況確定。
有時候需要相反:
- 初始化類
- 組ScreenUpdating =真
在過程結束時或在錯誤的情況下的值恢復爲False。
我在這裏遇到麻煩;該類正確地設置了ScreenUpdating = false的值,但是當類獲得ScreenUpdating的「實際」值時,它始終爲真。沒有其他程序或插件可以改變這個值。
已經準備了test sheet以顯示以上幾點。從「suCaller」按鈕上方的下拉菜單中選擇ScreenUpdating的值。
- 選擇False並按下按鈕。
- 設置False之前的值爲真如預期。
- 測試數據從顯示ScreenUpdating新值(False)的另一個過程填充。
- 數據填充後,該值重置爲True。
- 再次按下按鈕,'實際'值與預期一致爲真。
- 做了很多次,值應該沒問題。
現在選擇True並按下按鈕。設定真之前
- 值爲真如預期(其是從上方的值)
- 測試數據被再次填充表示ScreenUpdating新值(真)
- 數據填充之後,值被複位爲假。
- 再次按下按鈕,'實際'值爲真並非假。
該類只會否定新值以定義恢復值,所以結果會使我在生命週期中感到困惑,或者應該如何設置ScreenUpdating值。
我在課上做錯了什麼或缺少一些基本理論?
類模塊:ApplicationScreenUpdate
測試模塊:測試
Test Sheet TIA,奧斯卡。
嗨詹姆斯;不太關注你。但是從我的測試中可以看出,無論其他過程如何,Application.EnableEvents都會「永久」保留其值,直到您更改爲止。您可以使用相同的類來測試它,只需使用EnableEvents更改對ScreenUpdating的所有引用即可。 – Oscar 2013-02-13 20:28:20
其中一些事件會更改屏幕更新屬性...所以這是一些嘗試,但正如我最初所說,這種行爲看起來是按設計進行的。 – 2013-02-15 22:02:04