VBA 从 2 个不同的 Excel 工作表从前到后打印的代码

VBA code for Front to Back Print from 2 different Excel Worksheets

我有 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。我们的打印机是富士施乐。

非常感谢。

I tried to do what you said but it prints in separate pages. I want to print these in 1 page only, duplex printing.

直接说 duplex priting is not an option (or a future) of Excel (or Excel's sheet). It's a feature of printer. So, depending of printer futures and printer settings,您可能无法在纸张的双面打印 sheets sheet。

要打印的页数取决于 sheet 的 PageSetup。例如,如果您将 sheets 设置为在 1 页上打印:

With ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PageSetup 
    .Zoom = False 
    .FitToPagesTall = 1 
    .FitToPagesWide = 1 
End With

然后您使用 PrintOut method,您将看到 2 个页面。如果双面打印可用并且已正确设置,您将双面打印 1 页。

正如 PEH 已经提到的,要能够在单个方法中同时传递两个 sheet 是使用:

ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PrintOut

请点击我在回答中提供的链接以获取更多详细信息。

[编辑]
以下是一组可以帮助您解决问题的链接:
Excel VBA printer API, set colour and duplex
Controlling the Printer in a Macro
Working With Multiple Printers