我有一个用户表单,用于选择要打印的工作表,然后在单击命令按钮后打印它们。
我想打开“Backstage”PrintPreviewandPrint页面,以便同时选择打印机属性并预览所选的打印纸张。点击打印或后退箭头后,我想要PrintPreview和打印页面关闭并选择“主页”屏幕。
当我使用
时Application.CommandBars.ExecuteMso(“PrintPreviewAndPrint”)
显示所需的屏幕,但宏继续运行,打印预览显示主屏幕。即,在继续之前,宏不会等待PrintPreviewandPrint页面的输入。
代码是
Private Sub PrintDoc()
Sheets("Doc").Select
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
Sheets("Home").Select
End Sub
非常感谢任何帮助
答案 0 :(得分:1)
我发现了一个稍微凌乱的解决方案......
首先,我用以下方式调用打印预览:
Sub Printdoc()
Sheets("Doc").PrintPreview
Sheets("Home").Select
End Sub
如果选择了打印,则调用打印对话
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.Dialogs(xlDialogPrint).Show
End Sub
无论哪种方式(打印或取消),PrintDoc宏都会通过显示“主页”屏幕来完成
答案 1 :(得分:0)
在包含PrintDoc的模块中添加例程:
Sub AfterPrint()
Sheets("Home").Select
End Sub
将此内容放入ThisWorkbook模块
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.OnTime Now, "AfterPrint"
End Sub