Um einen ausgewählten Bereich in Excel (z. B. eine Quittung) als PDF in Excel mit VBA zu speichern, verwenden Sie die folgende Syntax.
Der generische Code
Unter SaveRangeAsPDF() Bereich.ExportAsFixedFormat Type:=xlTypePDF, Dateiname:= _ "C:\Benutzer\Dateiname", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub
Der obige Code ist ein generischer Code zum Speichern eines festen Bereichs als PDF-Dokument. Wenn Ihr Makro aufzeichnen, während Sie Excel nach PDF exportieren, wird ein ähnlicher Code angezeigt.
Bereich:Dies kann ein fester Bereich, ein dynamischer Bereich oder eine Auswahl sein. Sie müssen es definieren.
Dateiname: Dies ist der vollständig qualifizierte Name von pdf. Definiere es als String.
Die restlichen Variablen können so belassen werden. Ich habe sie nach Beispiel erklärt.
Beispiel: Excel-Quittung als PDF mit VBA drucken
Nehmen wir an, Sie müssen regelmäßig Belege in Excel drucken und senden. In diesem Fall möchten Sie es automatisieren. Sie möchten den Export von Excel nach PDF nicht immer wieder durchführen. Wenn Sie dazu einfach eine Schaltfläche verwenden können, wäre es hilfreich, nicht wahr?
Hier habe ich dieses Quittungsformat entworfen. Ich möchte es über den Button "PDF erstellen" als pdf drucken/speichern/exportieren.
Dieser Beleg deckt den Bereich "A2:L21" ab. Den Druckbereich habe ich bereits eingestellt.
Um diesen Excel-Bereich als PDF zu speichern, verwenden wir den oben genannten generischen VBA-Code zum Exportieren von Excel-Tabellen in PDF. Wir werden den Code gemäß unseren Anforderungen anpassen.
Sub PrintSelectionToPDF() Dim billRng As Range Dim pdfile As String 'Zu druckender Einstellbereich SetbillRng = Range("A1:L21") 'Einstellung des Dateinamens mit Zeitstempel. pdfile = "Rechnung" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf" 'den vollqualifizierten Namen setzen. Das resultierende PDF wird dort gespeichert, wo die Hauptdatei vorhanden ist. pdfile = ThisWorkbook.Path & strfile billRng.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:= pdfile, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish End Sub .:=False
Verwenden des Codes:
Kopieren Sie den obigen Code in Ihre Quittungsdatei, indem Sie den VBA-Editor öffnen ( verwenden Sie Alt + F11). Passen Sie den Bereich und den Dateipfad (falls gewünscht) im Code an, den Sie drucken möchten. Sie können die Arbeitsdatei unten herunterladen.
Excel Range als PDF mit VBA speichern
Erläuterung:
Dim billRng As Range Dim pdfile As String
Der Code ist einfach. Zuerst haben wir zwei Variablen erstellt. "InvoiceRng as Range" für den Bereich/das Blatt, das wir als PDF speichern möchten. strFile für den vollständig qualifizierten Dateinamen der resultierenden PDF-Datei.
Rechnung setzen = Range("A1:L21")
Da unser Druckbereich fest ist, legen wir den Rechnungsbereich als Range("A1:L21") fest.
pdfile = "Rechnung" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile
In den obigen beiden Zeilen benennen wir die Datei zuerst mit einem Zeitstempel und fügen dann den Pfad der Hauptdatei hinzu. Als Ergebnis enthält pdfile den vollständig qualifizierten Namen der resultierenden pdf-Datei.
RechnungRng.ExportAsFixedFormat _ Typ:=xlTypePDF, _ Dateiname:= pdfile, _ Qualität:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=True, _ OpenAfterPublish:=False
Schließlich verwenden wir die ExportAsFixedFormat-Methode der Range-Klasse, um den definierten Excel-Bereich als PDF zu drucken. Wir definieren den Typ als xlTypePDF. Eine andere Wahl ist xlTypeXPS, die den ausgewählten Bereich als XPS-Datei speichert.
Wir setzen den Dateinamen als pdfile, der den String des vollqualifizierten Namens der PDF-Datei enthält. Sie können hier einen hartcodierten Text schreiben oder ihn nach Ihren Wünschen anpassen.
Als nächstes legen wir die Qualität der PDF-Datei als xlQualityStandard fest. Wir haben eine andere Wahl als xlQualityMinimum.
Als Nächstes setzen wir die IncludeDocProperties auf True. Das bedeutet, dass das resultierende PDF die Eigenschaften eines Dokuments hat.
Dann setzen wir IgnorePrintAreas auf True. Dies bedeutet, dass alle bereits eingestellten Druckbereiche ignoriert werden.
Schließlich setzen wir OpenAfterPublish auf False. Dies bedeutet, dass die von Ihnen erstellte Datei nicht automatisch geöffnet wird. Ich habe es auf false gesetzt, weil ich Hunderte von Dateien mit einer Schleife erstelle und nicht möchte, dass sie geöffnet werden. Wenn Sie die Datei nach der Erstellung mit Excel öffnen möchten, setzen Sie sie auf True.
Nutzung des ausgewählten Bereichs als pdf drucken
Eine grundlegende Verwendung besteht darin, den ausgewählten Bereich durch einfaches Klicken auf eine Schaltfläche zu drucken. Die beste Verwendung ist jedoch die Verwendung in einer Schleife, in der Sie mehrere Belege für verschiedene Kunden erstellen müssen. Erstellen Sie ein Sub zum Füllen von Daten und verwenden Sie dann diesen Code, um den ausgewählten Bereich in einer Schleife zu drucken.
Also ja Leute, so können Sie den ausgewählten Bereich als PDF speichern. Ich hoffe, es war nützlich für Sie. Wenn Sie immer noch Zweifel oder Fragen zum Drucken in Excel mit VBA haben, fragen Sie im Kommentarbereich unten nach.
Drucken Sie mehrere Auswahlen auf einem Blatt mit VBA in Microsoft Excel | Wählen Sie mehrere Bereiche aus und drucken Sie jeden Bereich in einem anderen Blatt mit VBA.
Drucken Sie alle Arbeitsmappen in einem Ordner mit VBA in Microsoft Excel | Verwenden Sie diesen VBA-Code, um jede Excel-Arbeitsmappe zu drucken und in einem Ordner mit zu speichern.
Populäre Artikel:
Excel-Tabelle in mehrere Dateien basierend auf Spalten mit VBA aufteilen | Dieses VBA-Code-Split-Excel-Blatt basiert auf eindeutigen Werten in einer angegebenen Spalte. Laden Sie die Arbeitsdatei herunter.
Deaktivieren von Warnmeldungen mit VBA in Microsoft Excel 2016 | Um Warnmeldungen zu deaktivieren, die den laufenden VBA-Code unterbrechen, verwenden wir die Application-Klasse.
Hinzufügen und Speichern einer neuen Arbeitsmappe mit VBA in Microsoft Excel 2016 | Um Arbeitsmappen mit VBA hinzuzufügen und zu speichern, verwenden wir die Klasse Workbooks. Workbooks.Add fügt jedoch problemlos neue Arbeitsmappen hinzu…