是否有必要编写ScreenUpdating True

时间:2012-08-24 05:01:26

标签: excel vba

Application.ScreenUpdating = False
Application.ScreenUpdating = True

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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