Несколько причин, по которым макросы могут замедлять работу Excel:
- Утечка памяти. www.cyberforum.ru Для решения проблемы можно попробовать разделить код на две части: принимающий изменения в одном приложении Excel и выполняющий эти изменения в другом. www.cyberforum.ru
- Неправильно написанный код. www.excel-vba.ru Например, если код не был рассчитан на цикличное выполнение или в нём многократно создаются объекты или экземпляры приложений и они не уничтожаются. www.excel-vba.ru
- Большое количество программных кодов в книге. www.planetaexcel.ru Для увеличения скорости работы можно перенести макросы на модули и убрать различные коды с листов. www.planetaexcel.ru
- Непрописанные переменные. www.planetaexcel.ru Если не описывать переменные, то не стоит ждать высокой скорости от макроса, так как все переменные по умолчанию имеют тип Variant. www.planetaexcel.ru
Также в Microsoft Excel 2013 макросы, которые защищают или отменяют защиту листов, могут выполняться медленнее из-за нового более надёжного алгоритма хэширования (SHA-512) для шифрования. learn.microsoft.com
Для ускорения работы макроса можно, например, отключить обновление экрана во время его работы, поместить таблицу в массив и обрабатывать массив, а не таблицу, а также найти лучший алгоритм обработки. otvet.mail.ru