我正在使用
为什么
编辑:我在Windows XP上使用Excel 2003。
这是对之前的问题的跟进;感谢Robert Mearns的答案和下面的示例代码。
DoEvents
来强制更新进度指示器,它位于状态栏(或工作表中的某个单元格)中,就像下面的示例代码一样。但屏幕没有刷新,或在某个点停止刷新。任务最终完成,但进度条无用。为什么
DoEvents
不会"执行事件"? 我还能做什么来强制更新屏幕?编辑:我在Windows XP上使用Excel 2003。
这是对之前的问题的跟进;感谢Robert Mearns的答案和下面的示例代码。
Sub ProgressMeter()
Dim booStatusBarState As Boolean
Dim iMax As Integer
Dim i As Integer
iMax = 100
Application.ScreenUpdating = False
''//Turn off screen updating
booStatusBarState = Application.DisplayStatusBar
''//Get the statusbar display setting
Application.DisplayStatusBar = True
''//Make sure that the statusbar is visible
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.......
DoEvents
''//Yield Control
Next i
Application.DisplayStatusBar = booStatusBarState
''//Reset Status bar display setting
Application.StatusBar = False
''//Return control of the Status bar to Excel
Application.ScreenUpdating = True
''//Turn on screen updating
End Sub
Application.ScreenUpdating = False
吗? - Peter Lang