excel 2007 vba Application.Dialogs(xlDialogPrint).Show аварийно завершает работу, если пользователь выбирает предварительный просмотр

В Excel 2007 есть кнопка, которая запускает макрос, который выбирает несколько листов из многих и отправляет их в Application.Dialogs(xlDialogPrint).Show. При выборе нескольких листов запускаются другие макросы, такие как отображение определенных строк, защита и снятие защиты паролем и т. д.

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

Кажется, что он выполняет весь макрос во второй раз и дает сбой, потому что ожидаемые значения и настройки не на месте, как обычно, когда он выполняется в первый раз.

Любой способ учесть или зафиксировать материал диалогового окна предварительного просмотра печати, когда предварительный просмотр запускается через диалоговое окно принтера из Application.Dialogs(xlDialogPrint).Show?

Я попытался изменить переданные параметры, например

Application.Dialogs(xlDialogPrint).Show ,,,,,False
Application.Dialogs(xlDialogPrint).Show Arg6:=False

Но они не работают; Я читал, что вы все равно не можете изменить диалог.

(Надеюсь, это понятно)


person Kirk Hings    schedule 04.08.2010    source источник
comment
Что, если вы сначала покажете диалоговое окно «Предварительный просмотр», а затем пользователь перейдет оттуда в диалоговое окно «Печать»? Application.Dialogs(xlDialogPrintPreview).Show   -  person barrowc    schedule 05.08.2010
comment
Попытка и неудача 8 ^) То же самое, он собирает правильные страницы, даже динамически вставляет информацию нижнего колонтитула, как я разработал, но затем происходит такой же сбой, независимо от того, нажимаю ли я печать или закрываю предварительный просмотр печати. Та же ошибка, что, кажется, снова запускает функцию печати, а не просто отправляет собранные листы на принтер. Еще раз, чтобы уточнить, если вы используете dialogPrint, если вы просто нажимаете печать, все в порядке. Это просто предварительный просмотр, который все портит.   -  person Kirk Hings    schedule 05.08.2010
comment
Это происходит на каждом ПК, который вы тестируете? Это произойдет, если вы измените принтер по умолчанию?   -  person ray    schedule 20.06.2011


Ответы (1)


Не уверен, хотите ли вы показать предварительный просмотр печати непосредственно после нажатия кнопки или нет. Обычно я использую что-то вроде этого. Мне проще сначала просмотреть предварительный просмотр, а затем решить, хочу ли я распечатать печатную копию. Но это может не сработать в вашей ситуации.

Private Sub CommandButton1_Click()

    Dim vSheets() As Variant

    vSheets = Array("Sheet1", "Sheet2")
    ActiveWorkbook.Sheets(vSheets).Select 'sheets need to be selected
    ActiveWorkbook.PrintOut preview:=True 'brings up print preview
End Sub
person Fink    schedule 05.08.2010