Verwenden Sie die folgende Syntax, um einen ausgewählten Bereich in Excel (z. B. eine Quittung) als PDF in Excel mit VBA zu speichern.

Der generische Code

Sub SaveRangeAsPDF()

Range.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\file_name", Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Der obige Code ist ein allgemeiner Code zum Speichern eines festen Bereichs als PDF-Dokument. Wenn Ihr Datensatzmakro beim Exportieren von Excel in PDF einen ähnlichen Code anzeigt.

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. Definieren Sie es als Zeichenfolge.

Der Rest der Variablen kann unverändert bleiben. Ich habe sie nach Beispiel erklärt.

Beispiel: Excel-Quittung als PDF mit VBA drucken Nehmen wir an, Sie müssen Quittungen regelmäßig in Excel drucken und senden. In diesem Fall möchten Sie es automatisieren lassen. Sie möchten den Export nicht immer wieder als PDF ausführen. Wenn Sie dazu nur eine Schaltfläche verwenden können, wäre dies hilfreich, nicht wahr?

Hier habe ich dieses Quittungsformat entworfen. Ich möchte es als PDF mit der Schaltfläche „PDF erstellen“ drucken / speichern / exportieren.

imageThis receipt covers the range „A2:L21“. I have already set the print area.

image

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 invoiceRng As Range

Dim pdfile As String

'Setting range to be printed

Set invoiceRng = Range("A1:L21")

'setting file name with a time stamp.

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

'setting the fulli qualified name. The resultent pdf will be saved where the main file exists.

pdfile = ThisWorkbook.Path & strfile

invoiceRng.ExportAsFixedFormat Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=False, _

OpenAfterPublish:=False

End Sub

Verwenden des Codes:

Kopieren Sie den obigen Code in Ihre Belegdatei, indem Sie den VBA-Editor öffnen (verwenden Sie Alt + F11). Passen Sie den Bereich und den Dateipfad (falls gewünscht) in dem Code an, den Sie drucken möchten. Sie können die Arbeitsdatei unten herunterladen.

`link: /wp-content-uploads-2019-12-Save-Excel-Range-as-PDF-using-VBA.xls [

image 48Save Excel Range as PDF using VBA]

Erläuterung:

Dim invoiceRng As Range

Dim pdfile As String

Der Code ist einfach. Zunächst haben wir zwei Variablen erstellt. „InvoiceRng as Range“ für den Bereich / das Blatt, das bzw. das wir als PDF speichern möchten. strFile für den vollständig qualifizierten Dateinamen des resultierenden PDF.

Set invoiceRng = Range("A1:L21")

Da unser Druckbereich festgelegt ist, setzen wir den Rechnungsbereich auf Bereich („A1: L21“).

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

pdfile = ThisWorkbook.Path & strfile

In den beiden obigen Zeilen benennen wir die Datei zuerst mit einem Zeitstempel und fügen sie dann dem Pfad der Hauptdatei hinzu. Infolgedessen enthält die PDF-Datei den vollständig qualifizierten Namen der resultierenden PDF-Datei.

invoiceRng.ExportAsFixedFormat _

Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=True, _

OpenAfterPublish:=False

Schließlich verwenden wir die ExpoortAsFixedFormat-Methode der Range-Klasse, um den definierten Excel-Bereich als PDF zu drucken. Wir definieren Typ als xlTypePDF. Eine andere Option ist xlTypeXPS, mit der der ausgewählte Bereich als XPS-Datei gespeichert wird.

Wir setzen den Dateinamen als PDF-Datei, die die Zeichenfolge des vollständig qualifizierten Namens der PDF-Datei enthält. Sie können hier einen fest codierten 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. Dies bedeutet, dass das resultierende PDF die Eigenschaften eines Dokuments aufweist.

Dann setzen wir die IgnorePrintAreas auf True. Dies bedeutet, dass bereits festgelegte 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 falsch gesetzt, weil ich Hunderte von Dateien mit einer Schleife erstelle und nicht möchte, dass sie geöffnet werden. Wenn Sie die Datei nach dem Erstellen mit Excel öffnen möchten, setzen Sie sie auf True.

Verwendung des Druckbereichs des ausgewählten Bereichs als pdf

Eine grundlegende Verwendung besteht darin, den ausgewählten Bereich durch einfaches Klicken auf eine Schaltfläche zu drucken. Am besten verwenden Sie es jedoch in einer Schleife, in der Sie mehrere Belege für verschiedene Clients erstellen müssen. Erstellen Sie ein Sub zum Füllen von Daten und drucken Sie dann mit diesem Code den ausgewählten Bereich in einer Schleife.

Also ja Leute, so können Sie den ausgewählten Bereich als PDF speichern. Ich hoffe es war nützlich für dich. Wenn Sie immer noch Zweifel oder Fragen zum Drucken in Excel mit VBA haben, fragen Sie im Kommentarbereich unten nach.

Verwandte Artikel:

link: / print-in-vba-print-all-workbooks-in-a-folder-using-vba-in-microsoft-excel [Alle Arbeitsmappen in einem Ordner mit VBA in Microsoft Excel drucken] | Verwenden Sie diesen VBA-Code, um jede Excel-Arbeitsmappe mit in einem Ordner zu drucken und zu speichern.

Beliebte Artikel:

link: / allgemeine-themen-in-vba-teilen-excel-blatt-in-mehrere-dateien-basierend-auf-spalte-mit-vba [Excel-blatt in mehrere dateien basierend auf spalte mit vBA teilen] | Diese VBA-Code-Split-Excel-Tabelle basiert auf eindeutigen Werten in einer angegebenen Spalte.

Laden Sie die Arbeitsdatei herunter.

link: / allgemeine-themen-in-vba-ausschalten-warnen-nachrichten-mit-vba-in-microsoft-excel [Warnmeldungen mit VBA in Microsoft Excel 2016 ausschalten] | Um Warnmeldungen zu deaktivieren, die den laufenden VBA-Code unterbrechen, verwenden wir die Application-Klasse.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Neue Arbeitsmappe mit VBA in Microsoft Excel 2016 hinzufügen und speichern] | Zum Hinzufügen und Speichern von Arbeitsmappen mit VBA verwenden wir die Klasse Arbeitsmappen. Workbooks.Add fügt problemlos neue Arbeitsmappen hinzu …​