当我select打印所有,我得到一个打印对话框。 如果我select取消,它仍然会打印
我正在使用Excel 2010 VBA执行查找并在另一个工作表中打印名称和图片的各个页面。 当我select打印所有,因为我已经创build了一个命令button,我得到打印机对话框,所以我可以select适当的打印机。 如果我select了正确的打印机,页面打印完美。 我的问题是,如果我select取消打印机对话框,页面仍然会打印。 如果我select取消,我怎样才能做到这一点?
Private Sub PrintAll_Click() Dim rngOffenders As Range Set rngOffenders = Worksheets("Names").Range("A2",Worksheets("Names").Range("A2").End(xlDown)) Application.Dialogs(xlDialogPrint).Show Dim rng As Range For Each rng In rngOffenders.Cells Worksheets("Template").Range("LastName").Value = rng.Value Calculate Worksheets("Template").PrintOut Next rng End Sub
Application.Dialogs(xlDialogPrint).Show
.Show
是一个函数 ,这意味着它返回一个值 – 一个Boolean
值,如对象浏览器( F2 )所示:
您的代码正在丢弃该值,并且该过程的其余部分无条件执行。
你需要捕获一个variables的返回值:
Dim willPrint As Boolean willPrint = Application.Dialogs(xlDialogPrint).Show
然后你有几个select来处理取消; 最简单的可能是当结果为False
时Exit Sub
:
If Not willPrint Then Exit Sub 'dialog was cancelled: bail out