亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Excel VBA中強制屏幕更新

在Excel VBA中強制屏幕更新

胡說叔叔 2019-12-05 15:55:26
我的Excel工具執行的任務很長,我正在嘗試通過在狀態欄中或工作表中某些單元格中提供進度報告來對用戶友好,如下所示。但是屏幕不刷新,或在某個時候停止刷新(例如33%)。任務最終完成,但是進度欄沒有用。我該怎么做才能強制更新屏幕?For i=1 to imax ' imax is usually 30 or so    fractionDone=cdbl(i)/cdbl(imax)    Application.StatusBar = Format(fractionDone, "0%") & "done..."    ' or, alternatively:    ' statusRange.value = Format(fractionDone, "0%") & "done..."    ' Some code.......Next i我正在使用Excel 2003。
查看完整描述

3 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

更改文本或格式后,有時工作表中的文本框不會更新,甚至DoEvent命令也無濟于事。


由于Excel中沒有命令以刷新用戶表單的方式刷新工作表,因此有必要使用技巧來強制Excel更新屏幕。


以下命令似乎可以解決問題:


- ActiveSheet.Calculate    

- ActiveWindow.SmallScroll    

- Application.WindowState = Application.WindowState


查看完整回答
反對 回復 2019-12-05
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

具體來說,如果您正在處理UserForm,則可以嘗試Repaint方法。如果您在表單中使用事件觸發器,則可能會遇到DoEvents問題。例如,函數運行時按下的任何鍵都將由DoEvents發送。鍵盤輸入將在屏幕更新之前進行處理,因此,如果要通過按住鍵盤上的箭頭鍵之一來更改電子表格上的單元格,則單元格更改事件將在主功能完成之前繼續觸發。


在某些情況下,不會刷新用戶窗體,因為DoEvents會觸發事件。但是,即使另一個事件緊接在前一個事件之后,Repaint也會更新UserForm,并且用戶將在屏幕上看到更改。


在UserForm代碼中,它很簡單:


Me.Repaint


查看完整回答
反對 回復 2019-12-05
  • 3 回答
  • 0 關注
  • 1734 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號