У меня была похожая проблема, которую я решил с помощью Application.OnTime .
Из связанной статьи библиотеки MSDN:
Запланирует процедуру для запускав указанное время в будущем (либо в определенное время суток, либо по прошествии определенного количества времени).
Вы можете попробовать использовать этот метод, чтобы предоставить рабочей книге достаточно времени для открытия.перед запуском процедуры DoStuff
:
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:01"), "DoStuff"
End Sub
Убедитесь, что процедура DoStuff
отсутствует в модуле рабочего листа:
Private Sub DoStuff()
'Implementation...
End Sub
Время можно отрегулировать, но одна секунда была удовлетворительной дляя.