【发布时间】:2018-12-07 03:58:18
【问题描述】:
我有 2 个 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 的代码。我们的打印机是富士施乐。
非常感谢。
【问题讨论】:
-
如果您简单地省略
MsgBox会怎样?顺便说一句,你确定Copies:=PageTo是正确的吗? -
我试着按照你说的去做,但它打印在不同的页面中。我只想打印 1 页,双面打印。
-
唯一的方法是将工作表组合成 1 个打印命令,例如
Sheets(Array("For Print", "Sheet4")).PrintOut,但是这对于From:=PageFrom, To:=PageTo来说会很棘手。使用 2 个不同的.PrintOut命令,没有机会将它们写在一张纸上。 -
很抱歉 PEH,但您的建议没有奏效。即使我没有包含 From:=PageFrom, To:=PageTo,该代码也不会打印第二张纸“Sheet4”
-
@Nica 好吧,我正是使用此代码在一张纸上打印不同的纸张(双面)。你一定是做错了什么。