我有一个用户表单,它选择要打印的工作表,然后在单击命令按钮后打印它们。
我想打开"后台"打印预览和打印页面,以允许同时选择打印机属性并预览所选工作表以进行打印。单击打印或后退箭头后,我想打印预览和打印页面以关闭并选择"主页"屏幕。
当我使用
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint"(
将显示所需的屏幕,但宏继续运行,并且打印预览显示主屏幕。即宏在继续之前不会等待来自 PrintPreviewand Print 页面的输入。
代码是
Private Sub PrintDoc()
Sheets("Doc").Select
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
Sheets("Home").Select
End Sub
任何帮助将不胜感激
- 删除工作表("主页"(。选择
-
在包含 PrintDocument 的模块中添加一个例程:
Sub AfterPrint() Sheets("Home").Select End Sub
-
把它放在你的这个工作簿模块中
Private Sub Workbook_BeforePrint(Cancel As Boolean) Application.OnTime Now, "AfterPrint" End Sub
我发现了一个有点混乱的解决方案......
首先,我调用打印预览:
Sub Printdoc()
Sheets("Doc").PrintPreview
Sheets("Home").Select
End Sub
然后,如果选择了打印,我调用打印对话框
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.Dialogs(xlDialogPrint).Show
End Sub
无论哪种方式(打印或取消(,PrintDoc宏通过显示"主页"屏幕来完成