Когда вы взаимодействуете с объектной моделью Excel, она может быть очень медленной. Существуют две вещи, которые существенно замедляют процесс: 1. обновление экрана после каждого взаимодействия с ячейкой и 2. повторный расчет листа после каждого взаимодействия с ячейкой. Ваш код, кажется, не выполняет никаких вычислений, но вы взаимодействуете с экраном. Я предлагаю вам обернуть ваш код следующим:
В начале всего вашего кода
'Turn off screen updating and auto recalc
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
В конце всего вашего кода
'Turn screen updating and auto recalc back on
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Если вы хотите получить возможно, вы можете установить переменную для хранения текущего значения Application.Calculation и вернуть его к начальному значению, когда закончите