Если вы хотите, чтобы ваш код макроса VBA работал быстро, то необходимо отключить некоторые функции VBA Excel в начале кода. После выполнения макроса снова включаем все функции.
Для этого мы можно использовать следующий код:
' Процедура : TurnOffFunctionality
' Источник : www.planacademy.ru
' Назначение: Отключает автоматические вычисления, обработку событий и обновление экрана
Public Sub TurnOffFunctionality()
' Все расчеты переводим в ручной режим
Application.Calculation = xlCalculationManual
' Отключаем статусную строку
Application.DisplayStatusBar = False
' Отключаем события
Application.EnableEvents = False
' Отключаем показ разбиения листа на печатные страницы
If Workbooks.Count Then
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False
End If
' Больше не обновляем страницы после каждого действия
Application.ScreenUpdating = False
' Отключаем сообщения Excel
Application.DisplayAlerts = False
End Sub
' Процедура : TurnOnFunctionality
' Источник : www.planacademy.ru
' Purpose : Включает автоматические вычисления, обработку событий и обновление экрана
Public Sub TurnOnFunctionality()
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
Application.EnableEvents = True
If Workbooks.Count Then
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = True
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Подробнее