2016-11-26 8 views
0

2つの異なるプリンタ(PrinterX &プリンタY)で異なる用紙(X & Y)を印刷するボタンを使用するExcelで非常に簡単なマクロを作成する必要があります。私が使ったコードは、印刷が効かないvba

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をPrinterYに印刷することです。

application.activeprinterは動作しません。

ありがとうございます!

+0

アップロードしたコードはエラーを返します.2行目は 'PrinterX = activeworkbook.Worksheets(" Printers ")。Range(" B1 ")。Value'です。前回の行についても同様で、 'PrinterY = Activeworkbook.Worksheets(" Printers ")。Range(" B2 ")。Value' –

答えて

0

"プリンタ"ワークシートに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 
あなたは二度同じコードを繰り返すループを使用することができません
0

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 
関連する問題