Pull to refresh
18
0.1
Михаил Волошин @McKinseyBA

Business Intelligence на больших данных

Send message

Можно, по опыту - для ускорения 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
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity