我有一個VBA表單,當我點擊它時,執行一些長時間的計算(幾秒到幾秒長),然後在表單中的框架上顯示結果。然而,一旦每隔一段時間,形式隱藏在我身上,我需要點擊周圍的VBA編輯器和回片,使其再次顯示VBA表單正在消失
我
Me.Repaint
在的結束形式 上計算,但是它仍然沒有幫助
我也嘗試禁用主片的「EnableCalculation」屬性,但還是沒有用
有誰碰到這樣的事情?我需要以某種特殊的方式加載表單嗎?
我有一個VBA表單,當我點擊它時,執行一些長時間的計算(幾秒到幾秒長),然後在表單中的框架上顯示結果。然而,一旦每隔一段時間,形式隱藏在我身上,我需要點擊周圍的VBA編輯器和回片,使其再次顯示VBA表單正在消失
我
Me.Repaint
在的結束形式 上計算,但是它仍然沒有幫助
我也嘗試禁用主片的「EnableCalculation」屬性,但還是沒有用
有誰碰到這樣的事情?我需要以某種特殊的方式加載表單嗎?
您是否嘗試關閉和更新屏幕,以便Excel不會在每次更改時重新繪製屏幕。
sub doSomthing()
Application.ScreenUpdating = False
'do something
Application.ScreenUpdating = True
end sub
嘗試試驗下面兩行代碼而不是repaint。
Me.Show
和/或:
Me.SetFocus
希望這些人會爲你工作!
對不起,我沒有回覆這麼久,我認爲這些會有所幫助,但現在me.show崩潰me.setFocus不起作用屏幕更新不會削減它doEvents沒有幫助,但它幫助我的東西別的,還是謝謝,有什麼想法?感謝大家輸入 – user1251858 2012-07-18 23:27:54
您需要展示更多代碼才能看到發生了什麼。理想情況下,一段(通過故障排除縮小範圍)在運行時會消失。 – danielpiestrak 2012-07-19 17:26:12
窗體消失了,因爲微軟已經更改了「上級」進程擁有窗體的模型(您的情況爲Excel)。我有同樣的問題,也無法克服它。
只要坐穩直到微軟決定通過對已經工作的某些東西進行修改來解決另一個引入的和未經測試的問題,這是值得他們努力的。
我有同樣的問題。單擊無模式用戶窗體上的命令按鈕保存Excel工作簿時,表單隨着代碼完成而消失。
我看這個問題是由於微軟已經做出,發現涉及到很多複雜的代碼,我無法融入我的項目的一些非常複雜的解決方案兼容一些跨變化。不過,我確實找到了一個非常快速的解決方法。
在我的情況下用戶窗體只有當代碼執行的命令按鈕的代碼End Sub
命令消失。我在它之前立即添加了一個Exit Sub
,並且用戶窗體不再消失。
在我的情況下,我不得不使用所有這些來實現它。 (frmGUI是我的形式) 的DoEvents
frmGUI.Repaint frmGUI.Show
你好,歡迎來到StackOverflow。請花一些時間閱讀幫助頁面,尤其是名爲[「我可以詢問什麼主題?」(http://stackoverflow.com/help/on-topic)和[「我應該問什麼類型的問題避免問?「](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/q/156810/204922)。您可能還想了解[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – lokusking 2016-06-28 13:42:01
利用Office 2013和Windows 7,右sub
(其中形式消失)結束前簡單地增加DoEvents
保持形式開放。沒有其他需要....爲我的情況。
考慮將'DoEvents()'添加到您的代碼中。如果你有一個執行很多次的循環,試着在'Next'語句之前放置DoEvents()。 – 2012-07-10 22:50:33
爲什麼你沒有接受更多的答案? – 2012-07-10 23:49:52