Salvați gama Excel ca PDF folosind VBA

Cuprins:

Anonim

Pentru a salva un interval selectat în Excel (să spunem o chitanță) ca PDF în Excel folosind VBA, utilizați sintaxa de mai jos.

Codul generic

Sub SaveRangeAsPDF () Gamă.ExportAsFixedFormat Type: = xlTypePDF, Nume de fișier:= _ "C: \ Utilizatori \ nume_fișier", Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub 

Codul de mai sus este un cod generic pentru a salva un interval fix ca document PDF. Când macro-ul dvs. de înregistrare în timp ce exportați Excel în PDF, va apărea un cod similar.

Gamă:Poate fi un interval fix, un interval dinamic sau o selecție. Trebuie să-l definiți.

Nume de fișier: Acesta este numele complet calificat al pdf-ului. Definiți-l ca un șir.

Restul variabilelor pot fi lăsate așa cum este. Le-am explicat după exemplu.

Exemplu: Imprimați chitanța Excel ca PDF utilizând VBA

Să presupunem că trebuie să tipăriți și să trimiteți chitanțe în Excel în mod regulat. În acest caz, ați dori să îl automatizați. Nu ați dori să faceți exportul Excel în pdf din nou și din nou. Dacă puteți utiliza doar un buton pentru a face acest lucru, ar fi util, nu-i așa?

Aici, am proiectat acest format de chitanță. Vreau să-l tipăresc / salvez / export ca fișier pdf folosind butonul „Creați PDF”.

Această chitanță acoperă intervalul „A2: L21”. Am setat deja zona de imprimare.

Pentru a economisi această gamă Excel ca PDF, vom folosi codul VBA generic menționat mai sus pentru a exporta foaia Excel în pdf. Vom ajusta codul conform cerințelor noastre.

Sub PrintSelectionToPDF () Dim invoiceRng As Range Dim pdfile As String 'Setarea intervalului de imprimat Set invoiceRng = Range ("A1: L21")' setarea numelui fișierului cu o ștampilă de timp. pdfile = "invoice" & "_" & Format (Now (), "yyyymmdd_hhmmss") & ".pdf" 'setând numele complet calificat. PDF-ul rezultat va fi salvat acolo unde există fișierul principal. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Filename: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = False, _ OpenAfterPublish: 

Utilizarea codului:

Copiați codul de mai sus în fișierul de chitanță deschizând editorul VBA (utilizați Alt + F11). Reglați intervalul și calea fișierului (dacă doriți) în codul pe care doriți să-l imprimați. Puteți descărca fișierul de lucru de mai jos.

Salvați gama Excel ca PDF folosind VBA

Explicaţie:

Dim invoiceRng As Range Dim pdfile As String 

Codul este simplu. În primul rând, am creat două variabile. „InvoiceRng as Range” pentru intervalul / foaia pe care dorim să o salvăm ca pdf. strFile pentru numele de fișier complet calificat al PDF-ului rezultat.

Setați invoiceRng = Range („A1: L21”) 

Deoarece gama noastră de imprimare este fixă, setăm intervalul facturilor ca Range („A1: L21”).

pdfile = "factură" & "_" & Format (Now (), "aaaaaaaaaaaaaaaaa) &" .pdf "pdfile = ThisWorkbook.Path & strfile 

În cele două rânduri de mai sus, denumim mai întâi fișierul cu un timestamp și apoi îl adăugăm la calea fișierului principal. Ca urmare, pdfile conține numele complet calificat al fișierului pdf rezultat.

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

În cele din urmă, folosim metoda ExpoortAsFixedFormat din clasa Range pentru a imprima gama Excel definită ca PDF. Definim tipul ca xlTypePDF. O altă alegere este xlTypeXPS, care va salva intervalul selectat ca fișier XPS.

Setăm numele fișierului ca fișier pdf, care conține șirul numelui complet calificat al fișierului pdf. Puteți scrie un text codat aici sau îl puteți personaliza conform nevoilor dvs.

Apoi, setăm calitatea fișierului pdf ca xlQualityStandard. Avem o altă alegere ca xlQualityMinimum.

Apoi, setăm IncludeDocProperties ca True. Înseamnă că PDF-ul rezultat va avea proprietățile unui document.

Apoi, setăm IgnorePrintAreas ca True. Înseamnă că va ignora orice zonă de imprimare deja setată.

În cele din urmă, setăm OpenAfterPublish ca False. Înseamnă că fișierul pe care îl creați nu se va deschide automat. L-am setat fals deoarece creez sute de fișiere folosind o buclă și nu vreau să se deschidă. Dacă doriți să deschideți fișierul după crearea utilizând Excel, setați-l True.

Utilizarea tipăririi gamei selectate ca pdf

O utilizare de bază este să imprimați gama selectată făcând doar clic pe un buton. Dar cea mai bună utilizare este să o folosiți într-o buclă în care trebuie să creați mai multe chitanțe pentru clienți diferiți. Creați un sub pentru completarea datelor și apoi utilizați acest cod pentru a imprima intervalul selectat într-o buclă.

Deci, băieți, așa puteți salva gama selectată ca pdf. Sper că ți-a fost de folos. Dacă aveți în continuare vreo îndoială sau întrebare cu privire la tipărirea în Excel folosind VBA, întrebați în secțiunea de comentarii de mai jos.

Imprimați mai multe selecții pe o singură foaie folosind VBA în Microsoft Excel | Selectați mai multe intervale și imprimați fiecare interval într-o foaie diferită folosind VBA.

Imprimați toate registrele de lucru într-un folder folosind VBA în Microsoft Excel | Utilizați acest cod VBA pentru a imprima și a salva fiecare registru de lucru Excel într-un folder folosind.

Articole populare:

Împărțiți foaia Excel în mai multe fișiere pe baza coloanei folosind VBA | Acest cod VBA împarte baza de foi Excel pe valori unice într-o coloană specificată. Descărcați fișierul de lucru.

Dezactivați mesajele de avertizare folosind VBA în Microsoft Excel 2016 | Pentru a dezactiva mesajele de avertizare care întrerup codul VBA care rulează, folosim clasa Application.

Adăugați și salvați un registru de lucru nou folosind VBA în Microsoft Excel 2016 | Pentru a adăuga și a salva registre de lucru folosind VBA, folosim clasa Workbooks. Workbooks.Add adaugă cu ușurință un nou registru de lucru, totuși …