【问题标题】:VBA code for Front to Back Print from 2 different Excel Worksheets来自 2 个不同 Excel 工作表的从前到后打印的 VBA 代码
【发布时间】: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 好吧,我正是使用此代码在一张纸上打印不同的纸张(双面)。你一定是做错了什么。

标签: vba excel printing duplex


【解决方案1】:

我尝试按照您所说的做,但它打印在单独的页面中。我想要 仅打印 1 页,双面打印。

直接说duplex priting 不是 Excel(或 Excel 的工作表)的选项(或未来)。这是打印机的一个功能。因此,根据打印机期货和printer settings,您可能无法在纸张的两面打印纸张。

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

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

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

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

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

【讨论】:

  • 谢谢,但我需要在不设置打印机属性的情况下打印它。我的老板告诉我有一个控制打印机 API 的代码。我们的打印机是富士施乐。
  • @Nica,不客气。您写道,您需要在不更改打印机设置的情况下打印工作表。另一方面,您想通过 API 控制打印机。这两种说法相互矛盾!
  • 谢谢@maciej los 我会的。
  • 请编辑你的答案@maciej los,这样我就可以投票了。也请事后支持我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 2014-04-10
  • 2015-03-22
  • 1970-01-01
相关资源
最近更新 更多