2016-11-26 4 views
0

Ich brauche ein sehr einfaches Makro in Excel, wo ich eine Taste zum Drucken verschiedener Blätter (X & Y) auf zwei verschiedenen Druckern (PrinterX & Drucker Y) verwenden. Der Code, den ich benutzte, war;Drucken funktioniert nicht 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 

Was ich bekomme ist, dass es beide auf dem gleichen Drucker PrinterX druckt! Was iam tring zu tun ist, druckt X auf PrinterX und Y auf PrinterY

application.activeprinter funktioniert nicht und gibt Fehler!

Vielen Dank im Voraus!

+0

Der von Ihnen hochgeladene Code wird Fehler zurückgeben, die zweite Zeile sollte 'PrinterX = activeworkbook.Worksheets (" Drucker ") sein. Bereich (" B1 "). Value'. Dasselbe gilt auch für die vorletzte Zeile: PrinterY = Activeworkbook.Worksheets ("Printers"). Range ("B2"). Value " –

Antwort

0

Vergewissern Sie sich, dass das Arbeitsblatt "Drucker" über zwei verschiedene Drucker verfügt, die unter Range("B1") und Range("B2") eingerichtet wurden.

-Code

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

Sie eine Schleife nicht denselben Code zu wiederholen zweimal verwenden könnte;

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 
Verwandte Themen