Excel VBA循环并以交互方式显示更改

Excel VBA循环并以交互方式显示更改,excel,vba,Excel,Vba,我有一个VBA应用程序,它在一个范围内循环并进行一些更改。 但是,我不太关心运行时间,但我想向用户显示更改是在运行时进行的 我在想这样的事情 Private Sub ProcessALBODY(ByRef Fullpath, ByRef MasterWB) ... For Each Row In rng.rows ... 'Do Something DoEvents ActiveWindow.ScrollRow = 1 'for each row scroll

我有一个VBA应用程序,它在一个范围内循环并进行一些更改。 但是,我不太关心运行时间,但我想向用户显示更改是在运行时进行的

我在想这样的事情

Private Sub ProcessALBODY(ByRef Fullpath, ByRef MasterWB)
...

    For Each Row In rng.rows
    ... 'Do Something

    DoEvents
    ActiveWindow.ScrollRow = 1 'for each row scrolldown and proceed to next row
    Next

...
End Sub

不幸的是,我的应用程序在完成之前会冻结。

您可以使用状态栏显示进度。使用
Application.StatusBar=
,然后在其后选择字符串、整数等。如果将其放在“For”语句中,它将随着每次迭代而更新

ActiveWindow.ScrollRow = Row.Row

应该做你想做的事

选择或隐藏什么不起作用

rng.EntireRow.Hidden = True
    For Each row In rng.Rows

        row.EntireRow.Hidden = False
        'do something.
        rng.EntireRow.Hidden = True

    Next

rng.EntireRow.Hidden = False


ActiveWindow.ScrollRow=Row.Row
@TimWilliams拯救了我的一天,先生,请写下来作为答案!嘿@V.Hunon我的呢?!?除了诱发癫痫发作之外,这真是太棒了?!?!☄美好的比我的好。
For Each row In rng.Rows

    row.Select
    'do something.

Next