Application.ScreenUpdating = False
Application.ScreenUpdating = True
我发现了关于第二行的矛盾陈述
是否有必要?
有人说Excel会在每个End Sub行之后自动打开ScreenUpdating吗?
答案 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