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

Nic*_*ica 3 printing excel vba duplex excel-vba

我有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
Run Code Online (Sandbox Code Playgroud)

请帮忙 :(

我需要在不设置打印机属性的情况下打印它.我的老板告诉我有一个控制打印机API的代码.我们的打印机是FujiXerox.

非常感谢.

Mac*_*Los 5

我试着按照你说的做,但它打印在单独的页面中.我想仅在1页打印这些,双面打印.

直接说双面打印不是Excel(或Excel表)的选项(或未来).这是打印机的一个功能.因此,根据打印机期货和打印机设置,您可能或者可能无法在纸张的两面打印纸张.

要打印的页数取决于工作表的PageSetup.例如,如果您将纸张设置为在1页上打印:

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

然后你使用PrintOut方法,你会看到2页.如果双面打印已正确设置,则双面打印1页.

正如PEH已经提到的,能够在单一方法中传递两张纸是使用:

ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PrintOut
Run Code Online (Sandbox Code Playgroud)

请按照我在答案中提供的链接获取更多详细信息.

[编辑]
以下是一组可帮助您解决问题的链接:
Excel VBA打印机API,设置颜色和双工
控制宏中的打印机
使用多个打印机