При использовании «Ctrl + P» или «Файл - Печать» событие Workbook.BeforePrint (Excel) не вызывается до отображения предварительного просмотра печати. - PullRequest
1 голос
/ 24 мая 2019

Я хочу использовать событие BeforePrint в Excel, чтобы редактировать верхний и нижний колонтитулы окончательной распечатки в зависимости от различных параметров. Чтобы пользователь мог проверить правильность настройки страницы, необходимо вызвать этот код перед отображением предварительного просмотра в Excel. При вызове предварительного просмотра печати с кодом VBA ThisWorkbook.PrintPreview событие запускается до отображения предварительного просмотра, но при использовании «Ctrl + P» или «Файл - печать» событие не вызывается до тех пор, пока документ не будет отправлен на принтер, поэтому предварительный просмотр не показывает окончательную распечатку. Код Application.CommandBars.ExecuteMso "PrintPreviewAndPrint" также приводит к тому же неудовлетворительному результату.

Я заметил, что при использовании ThisWorkbook.PrintPreview предварительный просмотр отображается в полноэкранном режиме, в то время как другие методы показывают «нормальный» предварительный просмотр. Чтобы проверить, вызывается ли событие, я использовал следующий короткий фрагмент кода.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Debug.Print "BeforePrint"
End Sub

Мне нужен надежный способ показать правильный предварительный просмотр печати, поэтому использование кнопки с кодом VBA, упомянутым выше, не вариант. Есть предложения?

Заранее спасибо, мк

1 Ответ

0 голосов
/ 24 мая 2019

Даже если вы не указали, какую версию Excel вы используете (в этом случае это может быть важно). Я боюсь, что получение события .BeforePrint, вызываемого перед предварительным просмотром печати, при использовании Ctrl + P может оказаться невозможным в вашем случае, поскольку « Excel 2013 и более поздние версии не запускают Workbook_BeforePrint в предварительном просмотре печати. ​​» (пользователь OzRoz , 2017)

Приведенный выше ответ взят из темы , которая задавала аналогичный вопрос . В ответе OzRoz также упоминает, что « вы можете запустить его для тестирования, добавив значок« Просмотр в полноэкранном режиме »на свою QAT (панель быстрого доступа) »

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

...