2
Application.ScreenUpdating = False
Application.ScreenUpdating = True

我发现关于第二行的矛盾陈述。
有没有必要?
有人说 Excel 在每个 End Sub 行之后自动打开 ScreenUpdating?

4

2 回答 2

2

是的,ScreenUpdating 应始终在宏完成后设置回 True。另外,不要忘记在出错的情况下恢复它,我通常总是在退出 Sub/Function 之前将 Application.ScreenUpdating=True 放在错误挂起代码中。Excel 不会在宏结束后应用此属性的任何自动设置。

于 2012-08-24T21:50:45.200 回答
0

当它存在子时,屏幕更新会自行恢复为真。

测试一下。具有屏幕更新且未设置回 true 的代码。

Sub with_SU2()
    Application.ScreenUpdating = False
    For Each cell In Range("A1:K22").Cells
        cell.Select
        cell.Value = cell.Row & " _ " & cell.Column
    Next cell
End Sub

在前面的代码之后运行它。您将看到屏幕更新已恢复。

Sub with_SU()
    For Each cell In Range("A1:K22").Cells
        cell.Select
        cell.Value = cell.Row & " _ " & cell.Column
    Next cell
End Sub
于 2019-12-18T13:17:28.707 回答