Excel 2010/2013 - VBA - Как запустить событие перед предварительным просмотром

1

Я потратил много времени, пытаясь решить эту проблему, и искал много форумов, но я пока не нашел решения. Может быть, кто-то здесь может найти ответ ...

Я хочу запустить некоторый код (изменить несколько ячеек для сдвига условного форматирования, скрыть некоторые строки и т. Д.), Прежде чем пользователь напечатает книгу.

В старые времена это было просто достигнуто путем запуска встроенного события _BeforePrint в excel:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    'Do something
End Sub

В Excel 2010 и выше пользователь может нажать print-preview после нажатия Ctrl-P или перейти в File-> Print.

Событие _BeforePrint возникает только после того, как пользователь фактически нажмет кнопку «Печать»!

Поэтому пользователь видит предварительный просмотр листа перед запуском моего макроса. Лист теперь не выглядит хорошо для печати, и пользователь начинает манипулировать листом, потому что он не знает, что лист будет подготовлен к печати после нажатия кнопки «Печать».

Кто-нибудь есть решение этого?

Стайн
источник
Это не решение, но, похоже, хороший обходной путь blog.contextures.com/archives/2011/09/28/…
jcbermu
Где вы положили этот код? thisworkbookмодуль?
Raystafarian
@Raystafarian Да, он должен быть в модуле этой рабочей книги, иначе он не будет работать в событии печати.
Стайн
@jcbermu Спасибо, к сожалению, это не решает мою проблему, так как пользователи по-прежнему смогут перейти к File-> Print, как они привыкли, и увидеть неправильный / плохой формат.
Стайн