在VBAmacros运行的时候关掉“一切”

我有一个VBAmacros代码。 其主要目的是将数据从工作簿复制到另一个工作簿; 只是行的变化。 这个macros是足够快的,直到我在目标工作表上做了一些条件格式化。

而我的问题是,是否有任何方式来禁用macros在运行时Excel中的每一个操作? 现在我禁用了这些:

Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False 

但我认为我可以closures更多,以加快速度。 有什么build议么?

您可以在标准模块上具有以下两个代码…

 Sub TurnEverythingOff() With Application .Calculation = xlCalculationManual .EnableEvents = False .DisplayAlerts = False .ScreenUpdating = False End With End Sub Sub TurnEverythingOn() With Application .Calculation = xlCalculationAutomatic .EnableEvents = True .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

然后你可以在下面的子例程中调用它们…

 Sub YourMacro() 'variable declaration section TurnEverythingOff On Error GoTo Skip 'if an error occurs, this makes sure that everything is turned on back 'other stuff here Skip: TurnEverythingOn End Sub 

就条件格式而言,请确保不将其应用于未使用的范围,即不在条件格式公式中引用整行或整列。 换句话说,将其限制在表单上的数据范围内。