我試圖讓一個圖像消失並在循環發生時重新出現。當我逐步完成代碼時,代碼會按預期運行,但是當我運行它時,屏幕不會更新,直到循環結束。Excel VBA:循環期間不刷新屏幕
我試着添加像DoEvents和ActiveWindow.SmallScroll的東西,如發現here但似乎沒有工作。我有一種感覺,這個問題可能與我的PC /設置/版本的Excel有關,並且該循環可能在某些人的機器上工作。如果你想試試,我已經上傳了sample file here。
我的代碼是:
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub ToggleImage()
For i = 1 To 20
Application.ScreenUpdating = True
ActiveSheet.Shapes("Picture 1").Visible = False
ActiveSheet.Shapes("Picture 2").Visible = True
ActiveSheet.Shapes("Picture 1").Visible = True
ActiveSheet.Shapes("Picture 2").Visible = False
Sleep 50
Next
End Sub
示例工作簿連接。
爲什麼不嘗試使用> Application.Wait(Now + TimeValue(「0:00:50」)) <並刪除睡眠庫和睡眠? – Vityata
嘿Vityata。不幸的是,當使用Wait而不是Sleep時,我遇到了同樣的問題。此外,你不能做一個短於1秒的時間,因此循環20次需要很長的時間(20秒)。不過謝謝。 – Lucas
我有一個想法 - 你可以簡單地把一個debug.print,打印循環中從1到5000的數字,它會減慢代碼足以看到圖片。 :)沒有任何睡眠和等待。這肯定會起作用。 – Vityata