Application.ScreenUpdating = False
Application.ScreenUpdating = True
我发现关于第二行的矛盾陈述。
有没有必要?
有人说 Excel 在每个 End Sub 行之后自动打开 ScreenUpdating?
是的,ScreenUpdating 应始终在宏完成后设置回 True。另外,不要忘记在出错的情况下恢复它,我通常总是在退出 Sub/Function 之前将 Application.ScreenUpdating=True 放在错误挂起代码中。Excel 不会在宏结束后应用此属性的任何自动设置。
当它存在子时,屏幕更新会自行恢复为真。
测试一下。具有屏幕更新且未设置回 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