2011-11-04 62 views
4

我有一個需要大約五秒鐘才能執行的宏,我使用的代碼爲Application.ScreenUpdating = False,因此看起來Word在運行時已經鎖定。宏在運行時可以顯示某些內容嗎?

我在最後使用了一個消息框來告訴它它已經完成,但我想在執行過程中顯示一個圖像,告訴用戶宏正在運行(主要是爲了不讓他們擔心,但也是因爲它更好看)。

可能有更簡單的方法來解決這個問題,但我決定創建一個圖像,創建一個非常基本的用戶表單,並簡單地將我的圖像設置爲其背景。然後,只要代碼開始運行,我就會彈出用戶表單。

我遇到的問題是,除非我關閉它,否則代碼的其餘部分將不會執行。它只是掛起,直到我做點什麼。有沒有一種方法可以在不停止其他過程的情況下顯示用戶窗體?如果沒有,我可以採用另一種方法在宏運行時顯示圖像嗎?

回答

5

您可以顯示用戶窗體非模態:

Userform1.Show False 
'do more stuff (doesn't wait for form to close) 
Userform1.Hide 
+0

謝謝你,蒂姆。這工作幾乎完美。唯一的問題是,當用戶表單正確加載(並關閉)...並且代碼在用戶表單後執行時,用戶表單(圖片)的內容從不顯示。這就像有太多的行動發生。 除了嘗試使用較小文件大小的圖片之外,您是否有任何建議? – Mike

+0

嘗試在顯示錶單後添加一個'DoEvents'。還要確保在第一次顯示錶單時不抑制屏幕更新。 –

+0

這太奇怪了。添加'DoEvents'效果更好,但代碼不會在代碼運行時顯示,而只會顯示不到一秒,然後消失。在'userform.Show'和'DoEvents'行之後,我並沒有抑制屏幕更新。 – Mike

相關問題