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

3803
stine

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

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

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

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

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

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

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

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

1
Это не решение, но, похоже, хороший обходной путь http://blog.contextures.com/archives/2011/09/28/excel-2010-print-preview-problems/ jcbermu 9 лет назад 0
Где вы положили этот код? модуль `thisworkbook`? Raystafarian 9 лет назад 0
@Raystafarian Да, он должен быть в модуле этой рабочей книги, иначе он не будет работать в событии печати. stine 9 лет назад 0
@jcbermu Спасибо, к сожалению, это не решает мою проблему, так как пользователи по-прежнему смогут перейти к File-> Print, как они привыкли, и увидеть неправильный / плохой формат. stine 9 лет назад 0

0 ответов на вопрос

Похожие вопросы