VBA打印范围从不同的纸张并提示用户只有一次

我有两个范围(固定)在两张不同的纸张上,我想要在不同的页面上打印一个文件,只需要打印对话框提示用户一次。

我到目前为止这样做:

Sheets("Sheet1").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$D$47" ActiveWindow.SelectedSheets.PrintOut Sheets("Sheet2").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$D$94" ActiveWindow.SelectedSheets.PrintOut 

但它甚至不会提示用户一次。

您可以一次select多个工作表,然后调用PrintOut命令。

 Sheets("Sheet1").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$D$47" Sheets("Sheet2").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$D$94" Sheets(Array("Sheet1", "Sheet2")).Select ActiveWindow.SelectedSheets.PrintPreview Sheets("Sheet1").Select 'Needed so that multiple sheets don't remain selected 

您唯一的select是将单元格复制到新工作表中,设置分页符,然后使用.PrintPreview方法显示打印预览,在那里他们可以更改设置并在select时调用打印对话框。

 'I was able to print to four named ranges with this code If msgbox1 = vbOK Then Worksheets("TP print").Activate ActiveSheet.PageSetup.PrintArea = "TP_1A1,TP_1A2,TP_1A3,TP_1A4" ActiveWindow.SelectedSheets.PrintOut Preview:=Preview Worksheets("TP Orders").Activate ' Return to Enter Order screen Else MsgBox "Print Operation cancelled" Exit Sub End If 'Just give range names to the sections you want to print.