In Excel VBA wurde der Drucker auf den freigegebenen Drucker eingestellt

1

Ich habe ein langes VBA, das Zellen von einer Seite zur anderen kopiert und versucht, 3 Seiten auf verschiedenen Druckern zu drucken.

Der folgende Code scheint den Standarddrucker nicht zu ändern, und daher werden alle Seiten an denselben Drucker gesendet.

 For i = 0 To 15
    curNePrint = Format(i, "00")
    On Error Resume Next
        Application.ActivePrinter = "\\AtanaWin7PC3\DYMO LableWriter 450 on ne" & curNePrint & ":"
    Next i
 Worksheets(le).PrintPreview

Ich habe printPreview verwendet, um Altpapier auf dem Drucker zu sparen.

Kann mir hier jemand bei der Einrichtung eines Druckers für jede Seite helfen.

Vielen Dank

Ryan Gray
quelle

Antworten:

2

Ich habe gerade Ihren Code ausprobiert und konnte den Drucker erfolgreich wechseln.

Ich halte es für sehr wahrscheinlich, dass der Name Ihres Druckers einen Rechtschreibfehler enthält.

Vielleicht sollte LableWriter LabelWriter sein?

Um festzustellen, wie der Druckername lauten soll, empfehle ich, den aktiven Drucker manuell zu ändern, dann so etwas wie a Debug.Print Application.ActivePrinterauszuführen und das Ergebnis der Zeichenfolge sorgfältig mit dem von Ihnen angegebenen Ergebnis zu vergleichen.

S Barry
quelle
Das OP kann die Druckerliste auch mit Application.Printers ( msdn.microsoft.com/en-us/vba/access-vba/articles/… ) auflisten und instr()zur Identifizierung von Druckern mit "DYMO"
Yorik
@Yorik Es ist ein guter Gedanke, aber es sieht so aus, als wäre Ihr Link eher für Access als für Excel. Ich kann anscheinend keine entsprechende Eigenschaft für Excel finden.
S Barry
Ah, das habe ich verpasst. Könnte immer noch über einen Systemaufruf möglich sein
Yorik
Hallo, danke für die Antwort, ich habe jetzt diese Arbeit, wissen Sie, wie ich den Druck aus Fach ändern kann?
Ryan Gray
Ryan, ich glaube nicht, dass Sie das mit Excel VBA machen können, aber das könnte nützlich sein: excelforum.com/excel-programming-vba-macros/…
S Barry