Можно, по опыту - для ускорения VBA достаточно на время работы макроса отключить, предварительно отладив код, всякую отрисовку интерфейса и расчет формул (с последним надо аккуратнее), а в конце макроса включить опции обратно. Даже без оптимизации кода такой подход ускоряет время выполнение макроса на порядок или даже порядки. У меня при заполнении шаблона с 1.5мин. на 1 лист время упало до 9 секунд.
'Ускоряем Excel путём отключения всего "тормозящего"
Public Sub AccelerateExcel()
'Больше не обновляем страницы после каждого действия
Application.ScreenUpdating = False
'Расчёты переводим в ручной режим
Application.Calculation = xlCalculationManual
'Отключаем события
Application.EnableEvents = False
'Не отображаем границы ячеек
If Workbooks.Count Then
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False
End If
'Отключаем статусную строку
Application.DisplayStatusBar = False
'Отключаем сообщения Excel
Application.DisplayAlerts = False
End Sub
Information
Rating
2,638-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Можно, по опыту - для ускорения VBA достаточно на время работы макроса отключить, предварительно отладив код, всякую отрисовку интерфейса и расчет формул (с последним надо аккуратнее), а в конце макроса включить опции обратно. Даже без оптимизации кода такой подход ускоряет время выполнение макроса на порядок или даже порядки. У меня при заполнении шаблона с 1.5мин. на 1 лист время упало до 9 секунд.