【问题标题】:Get Printer Options in Excel VBA在 Excel VBA 中获取打印机选项
【发布时间】:2014-02-02 03:30:31
【问题描述】:

我有一个宏,我想在用户在 Microsoft excel 2010 文档中打印工作表之前和之后运行它。我正在使用 Workbook_BeforePrint 方法来执行此操作。我想知道的是,如何获取用户在打印工作表时已经选择的打印机选项,以便在使用 vba 打印文档时包含这些选项?例如,无论用户选择打印多少页,我下面的代码都只打印一页。我知道我可以使用 Thisworkbook.ActiveSheet.Printout copies:=2 或类似的东西,但我不知道如何获取用户选择的页面数。此外,我不确定打印时可能需要包含的其他任何内容。我不希望用户选择更改的选项中的任何内容。如果 Microsoft 包含 Workbook_AfterPrint 方法,这会容易得多:(。提前致谢!

这是我目前在 workbook_beforeprint 方法中的内容

If (ThisWorkbook.ActiveSheet.name = "Printable Schedule" And user.colorPrintable = True) Then

    Application.EnableEvents = False
    Application.ScreenUpdating = False

    Cancel = True

    user.colorPrintable = False
    Call updateEmployeeShifts

    ThisWorkbook.ActiveSheet.PrintOut

    user.colorPrintable = True
    Call updateEmployeeShifts

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End If

【问题讨论】:

    标签: vba excel printing


    【解决方案1】:

    使用Application.Dialogs(xlDialogPrinterSetup).Show 怎么样,这样您就可以选择您想要的选项然后打印。这行得通吗?

    【讨论】:

    • 效果很好,虽然 Application.Dialogs(xlDialogPrint).Show 更直接一些。
    • @Jason247 是的,你是对的,那会更直接一些。只是给你一个起点;)很高兴它对你有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多