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