VBA性能,应使用什么顺序来禁用/启用屏幕更新

时间:2018-07-20 08:06:01

标签: excel vba excel-vba

我有一个可以切换以下内容的宏:

 Application.ScreenUpdating = False
 Application.EnableEvents = False
 Application.DisplayAlerts = False
 Application.Calculation = xlCalculationManual

我同时打开/关闭所有功能,但我注意到有时EnableEvents不会重新打开,并且screenUpdating不会关闭。

我是否应该遵循特定的顺序,因为它们在切换时会相互影响?

2 个答案:

答案 0 :(得分:1)

我是否应该遵循特定的顺序,因为它们在切换时会相互影响?


关于非切换的开启或关闭,可能是您在代码中的某个位置On Error GoTo Somewhere上跳过了切换行? (只是猜测)。

答案 1 :(得分:1)

与其将所有这些都设置回True(对于已经将计算明确设置为手动的人来说可能会引起问题),您应该记录当前设置,然后再进行任何更改,然后将设置恢复为原始设置。完成后的值。有关为您管理此课程的类的示例,请参见CodeReview

唯一的交互可能与CalculationEnableEvents有关,但前提是为工作表/工作簿计算配置了事件。