如何暂停宏,直到在应用程序中选择打印或返回 ( "PrintPreviewAndPrint" )



我有一个用户表单,它选择要打印的工作表,然后在单击命令按钮后打印它们。

我想打开"后台"打印预览和打印页面,以允许同时选择打印机属性并预览所选工作表以进行打印。单击打印或后退箭头后,我想打印预览和打印页面以关闭并选择"主页"屏幕。

当我使用

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宏通过显示"主页"屏幕来完成

相关内容

  • 没有找到相关文章

最新更新