DoEvents не делает события ... Почему?

я используюDoEvents принудительно обновить индикатор прогресса в строке состояния (или в некоторой ячейке на листе), как в примере кода ниже. Но экран не обновляется или перестает обновляться в какой-то момент. Задача в конечном итоге завершается, но индикатор выполнения бесполезен.

Почему неDoEvents "делать события"? Что еще я могу сделать, чтобы принудительно обновить экран?

Изменить: я использую Excel 2003 на Windows XP.

Это продолжение допредыдущий вопрос; благодаряРоберт Мирнс за его ответ и пример кода ниже.

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

Ответы на вопрос(2)

Ваш ответ на вопрос