Я также предпочитаю использовать оба предложенных решения,
но также сохраняя предыдущий режим расчета.
Для этого конкретного приложения это может быть не важно,
но обычно рекомендуется разрешить пользователям восстанавливать свои настройки после завершения вашей процедуры:
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
NB. Также стоит потратить некоторое время на вставку обработки ошибок, которая включает Application.ScreenUpdating, если в вашем другом блестящем коде произойдет ошибка;
Если память мне не изменяет, Excel не будет отображать сообщения об ошибках и т. Д., Когда ScreenUpdating = false.
Как то так:
Sub DoSomeThing
On Error Goto DisplayError
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
Exit Sub
DisplayError:
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
MsgBox Err.Description
End 'This stops execution of macro, in some macros this might not be what you want'
'(i.e you might want to close files etc)'
End Sub