2011-09-16 51 views
3

我有一個COM(C++)API,用於偵聽來自服務器的數據更新並將這些更新寫入工作表。這些更新在VBA代碼中處理,並且可以每秒多次到達。爲了寫在最有效的方式,這些更新的表,我用下面的前提:是否有辦法阻止Excel自動設置Application.ScreenUpdating爲True

Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 

<UPDATE CODE> 
Application.ScreenUpdating = True 
Application.Calculation = xlCalculationAutomatic 

其實,我安排一個過程來完成此規定的時間間隔約20秒,其中ScreenUpdating = False,那麼它是設置爲true,以便數據可以更新,然後再次將其設置爲false。我發現這比單獨設置ScreenUpdates + Calculation更好,因爲我收到的更新頻率很高。

問題:

我已閱讀here,在每個禁用它是不是我所需要方法的最後練成套ScreenUpdating = True

問題:

是否有某種方式來強制Excel不會自動啓用ScreenUpdating

+0

「微軟的API列表」我不知道這個問題的答案。但我唯一的想法是研究API。除了將.ScreenUpdating = False放在代碼的最高層次結構中之外,看看是否有解決方案會很有趣。 – Jon49

+0

我已經嘗試了幾種不同的方法:將所有代碼放在一個模塊中,在每一個(是的每一個)方法中都調用.ScreenUpdaing = False,但是這些都不起作用。如果我找到解決方案,我會回覆。我可能會使用API​​的任何想法? –

+0

根據我的經驗(和理解),Excel _不會自動重置屏幕更新,計算,顯示警報或您代碼設置的任何其他內容。 –

回答

相關問題