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

用于从两个不同Excel工作表从前到后打印的VBA代码,vba,excel,printing,duplex,Vba,Excel,Printing,Duplex,我有两张Excel表格,即“供打印”和“表格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"

我有两张Excel表格,即“供打印”和“表格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的代码。我们的打印机是富士施乐

非常感谢你


我试着照你说的做,但它是分开打印的。我想 仅打印1页,双面打印

直接来说,a不是Excel(或Excel的工作表)的选项(或未来)。它是打印机的一个功能。因此,根据打印机的未来和,您可能无法在工作表的两面打印工作表

要打印的页数取决于工作表。例如,如果将工作表设置为在一页上打印:

With ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PageSetup 
    .Zoom = False 
    .FitToPagesTall = 1 
    .FitToPagesWide = 1 
End With
然后你使用,你会看到2页。如果双面打印是可用的,并且已经正确设置,你会得到双面打印1页

如前所述,要在一种方法中通过两张纸,需要使用:

ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PrintOut
请按照我在回答中提供的链接了解更多详细信息

[编辑]
以下是一组可帮助您解决问题的链接:



如果你简单地省略
MsgBox
?顺便说一句,你确定
Copies:=PageTo
是正确的吗?我试着按照你说的做,但它打印在单独的页面上。我只想打印一页,双面打印。唯一的方法是将这些页面合并到一个打印命令中,如
sheets(数组(“For print”,“Sheet4”)).PrintOut
但是使用
From:=PageFrom,To:=PageTo
这将很棘手。使用两个不同的
.PrintOut
命令,无法在一张纸上获得它们。很抱歉,PEH,您的建议也不起作用。代码不会打印第二页“Sheet4”甚至我也没有包括From:=PageFrom,To:=PageTo@Nica嗯,我正是使用这个代码在一张纸上打印不同的纸张(双面打印)。你一定做错了什么。谢谢,但我需要的是在不设置打印机属性的情况下打印这张表。我的老板告诉我要有一个控制打印机API的代码。我们的打印机是富士施乐。@Nica,不客气。你写道你需要在不更改打印机设置的情况下打印工作表。另一方面,你想控制通过API打印。这两个语句相互矛盾!请看这里:谢谢@maciej los我将提供这些。请编辑您的答案@maciej los,以便我可以对其进行更新投票。之后请对我的问题进行更新投票。