Как повысить скорость макрокода VBA?

В этой статье мы узнаем, как быстрее запускать макросы с помощью сводных таблиц, используя код VBA.

Вопрос): Я работаю над дашбордом, на котором создано значительное количество сводных таблиц и сводных диаграмм. Проблема, с которой я сталкиваюсь, заключается в том, что когда я обновляю все опорные точки, вся система зависает. Мне нужен волшебный код, который мне поможет.

Нам нужно выполнить следующие шаги:

Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

изображение: https: //www.office-skill.site/images/wp-content-uploads-2015-06-img134.png [img1, width = 409, height = 120]

Введите следующий код в стандартный модуль

Sub FastMacro ()

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

ActiveWorkbook.RefreshAll

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

End Sub

img2

На приведенном выше снимке экрана показан режим расчета в ручном режиме и обновление экрана, которое изначально было ложным, перед обновлением всех опорных точек, а затем режим расчета, который будет автоматическим, и обновление экрана, которое будет истинным.

Если вы последуете описанному выше подходу, это приведет к значительному обновлению по сравнению с простым обновлением сводных диаграмм.

image 19