【问题标题】:Printing sheets on different printers在不同的打印机上打印纸张
【发布时间】:2016-11-26 03:11:25
【问题描述】:

我需要在两台不同的打印机(打印机 X 和打印机 Y)上打印工作表(X 和 Y)。

Dim PrinterX as string
PrinterX=activeworkbook.Worksheets("Printers").Range("B1).value
Activerprinter = PrinterX
ActiveWorkbook.Worksheets("X").Printout

Dim PrinterY as string
PrinterY = Activeworkbook.Worksheets("Printers").Range("B2).value
Activerprinter = PrinterY
ActiveWorkbook.Worksheets("Y").Printout

它在同一台打印机 PrinterX 上打印。

我正在尝试在 PrinterX 上打印 X,在 PrinterY 上打印 Y

application.activeprinter 给出错误。

【问题讨论】:

  • 你上传的代码会返回错误,第二行应该是PrinterX=activeworkbook.Worksheets("Printers").Range("B1").Value。前一行也一样,应该是PrinterY = Activeworkbook.Worksheets("Printers").Range("B2").Value

标签: excel vba printing


【解决方案1】:

确保您的“打印机”工作表在 Range("B1")Range("B2") 中设置了 2 台不同的打印机。

代码

Option Explicit

Sub PrinteronDifferentPrinters()

Dim PrinterX As String
Dim PrinterY As String

PrinterX = ActiveWorkbook.Worksheets("Printers").Range("B1").Value
Activerprinter = PrinterX
ActiveWorkbook.Worksheets("X").PrintOut

PrinterY = ActiveWorkbook.Worksheets("Printers").Range("B2").Value
Activerprinter = PrinterY
ActiveWorkbook.Worksheets("Y").PrintOut

End Sub

【讨论】:

    【解决方案2】:

    你可以使用循环不要重复相同的代码两次;

    Sub main()
        Dim iCell As Long
    
        With Worksheets("Printers").Range("B1:B2") '<--| reference range with printers
            For iCell = 1 To .Count '<--|loop through it
                ActivePrinter = .Cells(iCell, 1).Value '<--| set activeprinter to curent cell value
                Worksheets(Array("X", "Y")(iCell - 1)).PrintOut '<--| define array with corresponding wanted sheets names and printout current one
           Next iCell
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多