你可以有標準的模塊在以下兩個代碼...
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
至於有條件格式化,請確保您不將它應用於未使用的範圍,即不在條件格式公式中引用整行或整列。換句話說,將其限制在表單上的數據範圍內。
'application.Calculation = xlCalculationManual' – YowE3K
什麼@ YowE3K說,只記得用'Application.Calculation = xlAutomatic' – Jeremy
條件格式增加了工作簿的大小極大,如果這將是更要重新開啓您的宏一次在循環中添加一行。如果關閉計算並不能阻止Excel進行所有計算並記錄與格式有關的所有數據,則可以嘗試一次性粘貼大塊數據,或者更好地,在完成粘貼後應用條件格式,或者仍然更好的辦法是不用條件格式化,並使用VBA來應用你想要的格式。 – Variatus