Exportieren Sie mehrere Blätter gleichzeitig in PDF, ohne ActiveSheet oder Select zu verwenden

Es wurde in meinen Kopf gebohrt, um Fehler zu vermeiden und eine gute Benutzererfahrung zu ermöglichen. Vermeiden Sie es am besten, es zu verwenden.Select, .Activate, ActiveSheet,ActiveCell, usw.

Wenn Sie dies bedenken, gibt es eine Möglichkeit, die zu verwenden.ExportAsFixedFormat Methode auf einer Teilmenge vonSheets in einer Arbeitsmappe, ohne eine der oben genannten zu verwenden? Bisher habe ich mir nur die folgenden Möglichkeiten ausgedacht:

benutze einenFor Each; Dies führt jedoch zu separaten PDF-Dateien, was nicht gut ist.

Verwenden Sie den Code, der dem vom Makrorecorder generierten Code ähnelt.Select undActiveSheet:

Sheets(Array("Sheet1", "Chart1", "Sheet2", "Chart2")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "exported file.pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= True

Vielleicht ist es unmöglich, nicht zu verwendenActiveSheet, aber kann ich wenigstens mit umgehen.Select irgendwie?

Ich habe das versucht:

Sheets(Array("Sheet1", "Chart1", "Sheet2","Chart2")).ExportAsFixedFormatType:= _
    xlTypePDF, Filename:= "exported file.pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= _
    True

Dies erzeugt:

Fehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht

Antworten auf die Frage(4)

Ihre Antwort auf die Frage