Salva l'intervallo Excel come PDF usando VBA

Sommario:

Anonim

Per salvare un intervallo selezionato in Excel (ad esempio una ricevuta) come PDF in Excel utilizzando VBA, utilizzare la sintassi seguente.

Il codice generico

Sotto SalvaIntervalloComePDF() Gamma.ExportAsFixedFormat Tipo:=xlTypePDF, Nome del file:= _ "C:\Utenti\nome_file", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub 

Il codice sopra è un codice generico per salvare un intervallo fisso come documento PDF. Quando la macro del tuo record mentre esporti excel in PDF, apparirà un codice simile.

Gamma:Può essere un intervallo fisso, un intervallo dinamico o una selezione. Devi definirlo.

Nome del file: Questo è il nome completo di pdf. Definiscilo come una stringa.

Il resto delle variabili può essere lasciato così com'è. Li ho spiegati dopo l'esempio.

Esempio: stampa ricevuta Excel come PDF utilizzando VBA

Supponiamo che tu debba stampare e inviare regolarmente le ricevute in Excel. In tal caso, vorresti averlo automatizzato. Non vorrai eseguire l'esportazione excel in pdf più e più volte. Se puoi semplicemente usare un pulsante per farlo, sarebbe utile, non è vero?

Ecco, ho progettato questo formato di ricevuta. Voglio stamparlo/salvarlo/esportarlo come pdf utilizzando il pulsante "Crea PDF".

Questa ricevuta copre l'intervallo "A2:L21". Ho già impostato l'area di stampa.

Per salvare su questo intervallo Excel come PDF, utilizzeremo il codice VBA generico sopra menzionato per esportare il foglio Excel in pdf. Adegueremo il codice secondo il nostro requisito.

Sub PrintSelectionToPDF() Dim billRng As Range Dim pdfile As String 'Setting range da stampare Set billRng = Range("A1:L21") 'setting file name with a timestamp. pdfile = "fattura" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf" 'impostazione del nome completo. Il pdf risultante verrà salvato dove esiste il file principale. pdfile = ThisWorkbook.Path & strfile billRng.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:= pdfile, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sublish:= 

Utilizzo del codice:

Copia il codice sopra nel tuo file di ricevuta aprendo l'editor VBA (usa Alt + F11). Regola l'intervallo e il percorso del file (se lo desideri) nel codice che desideri stampare. Puoi scaricare il file di lavoro qui sotto.

Salva l'intervallo Excel come PDF usando VBA

Spiegazione:

Dim fatturaRng As Range Dim pdfile As String 

Il codice è semplice. Innanzitutto, abbiamo creato due variabili. "InvoiceRng as Range" per l'intervallo/foglio che vogliamo salvare come pdf. strFile per il nome file completo del PDF risultante.

Imposta fatturaRng = Range("A1:L21") 

Poiché il nostro intervallo di stampa è fisso, impostiamo l'intervallo di fatturazione come Range ("A1: L21").

pdfile = "fattura" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile 

Nelle due righe precedenti, prima nominiamo il file con un timestamp e poi lo aggiungiamo al percorso del file principale. Di conseguenza, pdfile contiene il nome completo del file pdf risultante.

billRng.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:= pdfile, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=True, _ OpenAfterPublish:=False 

Infine, utilizziamo il metodo ExpoortAsFixedFormat della classe Range per stampare l'intervallo Excel definito come PDF. Definiamo il tipo come xlTypePDF. Un'altra scelta è xlTypeXPS, che salverà l'intervallo selezionato come file XPS.

Impostiamo il Filename come pdfile, che contiene la stringa del nome completo del file pdf. Puoi scrivere un testo codificato qui o personalizzarlo secondo le tue necessità.

Successivamente, impostiamo la qualità del file pdf come xlQualityStandard. Abbiamo un'altra scelta come xlQualityMinimum.

Successivamente, impostiamo IncludeDocProperties come True. Significa che il PDF risultante avrà le proprietà di un documento.

Quindi impostiamo IgnorePrintAreas come True. Significa che ignorerà qualsiasi area di stampa già impostata.

Infine, impostiamo OpenAfterPublish come False. Significa che il file che crei non si aprirà automaticamente. L'ho impostato su false perché creo centinaia di file utilizzando un ciclo e non voglio che si aprano. Se vuoi aprire il file dopo averlo creato usando Excel, impostalo su True.

Utilizzo della stampa dell'intervallo selezionato come pdf

Un uso di base è stampare l'intervallo selezionato semplicemente facendo clic su un pulsante. Ma l'uso migliore è usarlo in un ciclo in cui è necessario creare più ricevute per clienti diversi. Crea un sottotitolo per il riempimento dei dati e quindi usa questo codice per stampare l'intervallo selezionato in un ciclo.

Quindi sì ragazzi, ecco come salvare l'intervallo selezionato come pdf. Spero ti sia stato utile. Se hai ancora dubbi o domande sulla stampa in Excel utilizzando VBA, chiedi nella sezione commenti qui sotto.

Stampa più selezioni su un foglio utilizzando VBA in Microsoft Excel | Seleziona più intervalli e stampa ogni intervallo in un foglio diverso utilizzando VBA.

Stampa tutte le cartelle di lavoro in una cartella utilizzando VBA in Microsoft Excel | Usa questo codice VBA per stampare e salvare ogni cartella di lavoro Excel in una cartella utilizzando.

Articoli popolari:

Dividi il foglio Excel in più file in base alla colonna utilizzando VBA | Questo codice VBA divide il foglio Excel in base a valori univoci in una colonna specificata. Scarica il file di lavoro.

Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016 | Per disattivare i messaggi di avviso che interrompono il codice VBA in esecuzione, utilizziamo la classe Application.

Aggiungi e salva una nuova cartella di lavoro utilizzando VBA in Microsoft Excel 2016 | Per aggiungere e salvare cartelle di lavoro utilizzando VBA, utilizziamo la classe Workbooks. Cartelle di lavoro. Aggiungi aggiunge facilmente una nuova cartella di lavoro, tuttavia…