从2个不同的Excel工作表进行从正面到背面打印的VBA代码

时间:2018-06-28 07:03:15

标签: excel vba excel-vba printing duplex

我有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。

非常感谢您。

1 个答案:

答案 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