DoEvents não realiza os eventos ... Por quê?

estou a usarDoEvents para forçar uma atualização de um indicador de progresso na barra de status (ou em alguma célula da planilha) como no código de exemplo abaixo. Mas a tela não é atualizada ou para de ser atualizada em algum momento. A tarefa finalmente termina, mas a barra de progresso é inútil.

Por que nãoDoEvents "fazer os eventos"? O que mais posso fazer para forçar uma atualização de tela?

Edit: Estou usando o Excel 2003 no Windows XP.

Este é um acompanhamento de umpergunta anterior; graças aRobert Mearns para sua resposta e o código de exemplo abaixo.

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

questionAnswers(2)

yourAnswerToTheQuestion