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:
For 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