excel 2007 vba Application.Dialogs(xlDialogPrint).Show崩溃,如果用户select打印预览

在Excel 2007中,有一个触发macros的button,它从多个表中select几张,并发送到Application.Dialogs(xlDialogPrint).Show。 作为select几张纸的一部分,还有其他的macros被触发,如显示某些行,密码保护和解除保护等。

它打印并取消罚款,除非用户在该打印机对话框中单击“打印预览”button。 它显示的打印机对话框罚款,但无论他们打印或closures它崩溃。

它似乎再次贯穿整个macros,并且崩溃,因为预期值和设置在第一次运行时不像正常情况。

通过Application.Dialogs(xlDialogPrint).Show中的打印机对话框启动打印预览时,任何帐户或捕获打印预览对话框的东西的方法?

我曾尝试更改传递的参数

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

但是这些都不起作用。 我读过,你无法改变对话框。

(希望这是明确的)

不知道是否要直接从button点击显示打印预览。 通常我使用这样的东西。 我发现先查看预览比较容易,然后决定是否要打印出硬拷贝。 但是这可能不适合你的情况。

 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