我有2个Excel工作表,分别是“ For Print”和“ Sheet 4”。我想使用VBA自动前后打印纸张。这是我当前的代码,但是打印第一页后需要用户执行操作。
Sub Rectangle4_Click()
Dim PageFrom As Integer
Dim PageTo As Integer
Dim xAnswer As Integer
PageFrom = Sheets("INPUT").Range("J2").Value
PageTo = Sheets("INPUT").Range("L2").Value
Sheets("For Print").PrintOut From:=PageFrom, To:=PageTo, Copies:=1,
Collate:=True
'--------------------------------------TO PRINT PAGE 2--------------------
xAnswer = MsgBox("Print Page 2?", vbYesNo + vbQuestion, "Empty Sheet")
If xAnswer = vbYes Then
Sheets("Sheet4").PrintOut From:=1, To:=1, Copies:=PageTo, Collate:=True
End If
End Sub
请帮助:(
我需要在不设置打印机属性的情况下进行打印。我的老板告诉我要有一个控制打印机API的代码。我们的打印机是FujiXerox。
非常感谢您。
答案 0 :(得分:5)
我试图按照您说的去做,但它打印在单独的页面中。我想要 仅将它们打印在一页中,进行双面打印。
直接说duplex priting不是Excel(或Excel工作表)的选项(或将来)。这是打印机的功能。因此,取决于打印机的期货和printer settings,您可能会或可能无法在纸张的两面进行打印。
要打印的页数取决于工作表的PageSetup。例如,如果将纸张设置为在一页上打印:
With ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PageSetup
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
,然后使用PrintOut method,您将看到2页。如果双面打印可用并且已正确设置,则您将在两面打印一页。
如PEH所述,要在一种方法中同时传递两个表,就是使用:
ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PrintOut
请点击我在答案中提供的链接以获取更多详细信息。
[EDIT]
这是一组链接,可以帮助您解决问题:
Excel VBA printer API, set colour and duplex
Controlling the Printer in a Macro
Working With Multiple Printers