Это дополнительный вопрос к этому .
Как утверждают мои исследования и опыт работы с моим кодом, установка свойств PAGESETUP чрезвычайно медленная.Исследование показало 3 способа решения этой проблемы:
- Используйте встроенный макрос VBA 4 для настройки pagesetup
- Ограничьте свойства, чтобы установить
- Изменяйте свойство только еслиэто требует изменения
Итак, помня об этом, я изменил все свойства набора страниц, которые были записаны в макросе, с
.property = ""
на
IF .property <> "" OR NOT (.property = Empty) Then .property = ""
ЧтоЯ заметил, что первый прогон кода требует значительного времени.Последующий прогон кода, который он пропускает через мгновение, кажется.
Другая вещь, которую я нашел, была
Application.PrintCommunication = False
Должно быть похоже на временное отключение обновления экрана.
Итак, у меня есть все мои настройки страницы в одном подпункте, а область печати - в другом подпункте, и я вызываю их из третьего подпункта.
Если перед вызовом подпрограмм необходимо настроить Printcommunications следующим образом:
Application.PrintCommunication = False
For CounterX = LBound(SheetsToPrint) To UBound(SheetsToPrint)
setPrintArea ThisWorkbook.Worksheets(SheetsToPrint(CounterX))
SetupPage ThisWorkbook.Worksheets(SheetsToPrint(CounterX))
Next CounterX
Application.PrintCommunication = True
Или значение связи должно быть установлено в каждом из сабов setPrintArea
и SetupPage
?
Какие-либо другие предложения по ускорению печати?