Excel VBA pentru a imprima ca PDF și a salva cu nume de fișier automat

  • Imparte Asta
Hugh West

Există beneficii în cazul exportului unui Excel foaie de calcul ca o PDF document. Prin schimbarea fișierului în format PDF, vom putea să îl imprimăm și să îl împărtășim cu diverse conexiuni profesionale. PDF-urile sunt un standard de încredere pentru exportul documentelor pe care simțiți nevoia să le împărtășiți cu alții sau să le faceți publice. În acest articol, vom demonstra câteva exemple de VBA pentru a imprima în format PDF și a salva cu un nume de fișier automat.

Descărcați caietul de practică

Puteți descărca caietul de lucru și exersa cu ele.

VBA Print to PDF.xlsm

9 Exemple de Excel VBA pentru a imprima ca PDF și a salva cu nume de fișier automat în Excel

Putem imprima cu ușurință un fișier Excel în format PDF și salva fișierul cu un nume de fișier automat, utilizând bara de instrumente Excel. Dar, ar fi mai ușor cu Excel VBA . avem nevoie doar de VBA Nu avem nevoie de atâtea clicuri pentru a finaliza sarcina și astfel economisim timp.

Visual Basic pentru aplicații ( VBA ) este un model de programare și un program izolat care este cel mai des întâlnit în Microsoft Office Este un instrument analitic, adesea disponibil sub formă de Suplimente Excel , care optimizează operațiunile manuale, cum ar fi sarcinile monotone și consumatoare de timp. De asemenea, poate genera CSV Să vedem câteva exemple de tipărire a unui fișier Excel sub formă de PDF cu numele de fișier automat.

1. Imprimă registrul de lucru în PDF & Salvează automat numele fișierului în Excel

Să presupunem că dorim să imprimăm întregul registru de lucru și să salvăm numele fișierului așa cum am pus numele în codul nostru. Acum, să presupunem că dorim să salvăm un fișier PDF pe computerul nostru Discul local (E:) După cum putem vedea în imaginea de mai jos, locația nu conține niciun fișier pdf. După ce vom rula codul VBA, vom putea vedea fișierul dorit. PDF în locația respectivă de pe PC-ul nostru.

Cu Excel VBA , utilizatorii pot folosi cu ușurință codul care acționează ca meniurile Excel din panglică. Pentru a folosi codul VBA cod pentru a imprima pdf și a salva cu un nume de fișier automat, să urmăm procedura.

ETAPE:

  • În primul rând, mergeți la Dezvoltator din panglica de pe panglică.
  • În al doilea rând, din Cod categoria, faceți clic pe Visual Basic pentru a deschide fereastra Editor Visual Basic . sau apăsați Alt + F11 pentru a deschide fereastra Editor Visual Basic .

  • În loc să faceți acest lucru, puteți face clic dreapta pe foaia de lucru și mergeți la Vezi codul Acest lucru vă va duce, de asemenea, la Editor Visual Basic .

  • Aceasta va apărea în Editor Visual Basic în care ne scriem codurile pentru a crea un tabel din interval.
  • În al treilea rând, faceți clic pe Modul de la Introduceți bara de meniu derulantă.

  • Acest lucru va crea un Modul în registrul de lucru.
  • Și, copiați și lipiți VBA codul prezentat mai jos.

Cod VBA:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Executați codul apăsând tasta F5 de pe tastatura dumneavoastră.

  • În cele din urmă, puteți vedea că un nume de fișier PDF, Caietul de lucru se află acum în acea cale de acces de pe computerul dvs., ceea ce înseamnă că numele fișierului este salvat automat.

  • Și, în cele din urmă, dacă vă întoarceți la registrul de lucru, puteți vedea câteva linii punctate. Acest lucru se datorează faptului că fișierul este acum pregătit pentru imprimare.

Explicația codului VBA

 Sub Print_Workbook() 

Sub este o parte a codului care este folosită pentru a gestiona activitatea din cod, dar care nu va returna nicio valoare. Este cunoscută și sub denumirea de subprocedură. Așadar, numim procedura noastră Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Această linie este pentru locația și numele fișierului pdf. Aici, salvăm fișierul nostru în E: pe calculatorul nostru și numim fișierul Caietul de lucru .

 ActiveWorkbook.ExportAsFixedFormat Tip:=xlTypePDF, nume fișier:=loc 

Această linie de cod are rolul de a exporta fișierul Excel în format PDF și de a-l pregăti pentru imprimare.

 End Sub 

Astfel se va încheia procedura.

Citește mai mult: Exportați Excel în PDF cu hyperlink-uri (2 metode rapide)

2. Salvați foaia de lucru activă automat ca PDF

Să vedem un alt exemplu de tipărire a unei foi active într-un pdf și salvarea automată a numelui fișierului folosind Excel VBA .

ETAPE:

  • În primul rând, mergeți la Dezvoltarea r din panglică.
  • În al doilea rând, faceți clic pe Visual Basic pentru a deschide fereastra Editor Visual Basic .
  • O altă modalitate de a deschide Editor Visual Basic este pur și simplu să apăsați Alt + F11 .
  • Sau, faceți clic dreapta pe foaie, apoi selectați Vezi codul .
  • Apoi, mergeți la Introduceți și selectați Modul din meniul derulant.
  • Astfel, se va deschide fereastra Visual Basic.
  • După aceea, copiați și lipiți fișierul Cod VBA mai jos.

Cod VBA:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • În continuare, apăsați butonul Tasta F5 sau faceți clic pe butonul Run Sub pentru a rula codul.

  • La fel ca în exemplul anterior, fișierul este salvat ca PDF cu numele de fișier automat.

Dacă citești example1's Dacă veți înțelege acest lucru, veți înțelege și dumneavoastră.

Citește mai mult: Macro Excel: Salvați ca PDF cu data în numele fișierului (4 exemple adecvate)

3. Imprimați fișierul PDF din Excel cu VBA în gamă

Să analizăm un alt exemplu de utilizare a Excel VBA pentru a imprima o foaie activă în format pdf și a salva automat numele fișierului.

ETAPE:

  • Pentru a începe, faceți clic pe butonul Dezvoltator de pe panglică.
  • În al doilea rând, lansați programul Editor Visual Basic făcând clic pe Visual Basic .
  • Alternativ, puteți accesa pagina Editor Visual Basic prin apăsarea Alt + F11 .
  • Sau, faceți clic dreapta pe pe foaie și alegeți Vezi codul din meniu.
  • În continuare, alegeți Modul din caseta derulantă de sub Introduceți .
  • Și va apărea fereastra Visual Basic.
  • Scrieți codul acolo.

Cod VBA:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • În cele din urmă, apăsați butonul Tasta F5 pentru a rula codul.

  • După aceea, puteți vedea că un fișier PDF cu numele Workbook a fost adăugat în locația respectivă de pe calculatorul dvs. Ca urmare, numele fișierului este păstrat automat.

Citește mai mult: Imprimarea intervalului în PDF cu VBA în Excel (5 cele mai simple exemple)

4. Excel VBA pentru a derula în buclă peste foaia selectată și a imprima PDF

Să aruncăm o privire la o altă modalitate de a imprima în PDF și de a salva automat numele fișierului.

ETAPE:

  • Pentru a începe, deschideți panglica și selectați butonul Dezvoltator opțiune.
  • Apoi, pentru a accesa Editor Visual Basic , faceți clic pe Visual Basic .
  • Apăsarea Alt + F11 va afișa, de asemenea, aplicația Editor Visual Basic .
  • Alternativ, faceți clic dreapta pe foaia și alegeți Vezi codul din meniul care apare.
  • Acum, de la Introduceți opțiunea derulantă, alegeți Modul .
  • Apoi copiați și lipiți fișierul VBA codul care urmează.

Cod VBA:

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Executați codul apăsând tasta F5 cheie.

  • În cele din urmă, puteți vedea că un fișier PDF Workbook a fost încărcat în zona respectivă de pe calculatorul dvs. În consecință, numele fișierului este păstrat automat.

Astfel, fișierul va fi salvat ca număr de foaie al registrului de lucru.

Explicația codului VBA

 For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht 

Această linie de coduri din bucla for este destinată exportării fișierului Excel în format pdf și imprimării fișierului.

Citește mai mult: Excel VBA: ExportAsFixedFormat PDF cu ajustare la pagină (3 Exemple)

5. Imprimați în PDF și salvați instinctiv numele fișierului în Excel

Acum, aruncați o privire la o altă metodă Excel VBA pentru salvarea fișierelor Excel în format pdf și numiți sistemul automat al fișierului.

ETAPE:

  • Pentru a începe, deschideți panglica și alegeți Dezvoltator din meniul derulant.
  • Apoi, selectați Visual Basic pentru a deschide fereastra Editor Visual Basic .
  • The Editor Visual Basic poate fi, de asemenea, accesat prin apăsarea Alt + F11 .
  • Alternativ, puteți faceți clic dreapta pe foaia și selectați Vezi codul din meniul contextual.
  • După aceea, selectați Modul de la Introduceți meniul derulant.
  • În continuare, copiați și lipiți următorul cod VBA.

Cod VBA:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • În cele din urmă, rulați codul apăsând F5 pe tastatură și veți vedea rezultatul.

  • Ulterior veți vedea că un Manual de lucru PDF a fost deja salvat în locația respectivă de pe PC. Ca urmare, numele fișierului este păstrat automat.

În mod similar, ca și în exemplul anterior, acest lucru va salva, de asemenea, fișierul pdf ca număr de foaie.

Explicația codului VBA

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Blocul de cod este pentru imprimarea și salvarea fișierului Excel ca PDF.

Citește mai mult: Imprimare în PDF și e-mail utilizând VBA în Excel (2 cazuri utile)

6. Funcție VBA pentru a imprima PDF și a salva automat numele fișierului

Să explorăm o altă modalitate Excel VBA de a imprima în PDF și de a salva automat numele fișierului. În acest exemplu vom utiliza o funcție și vom salva fișierul în PDF. De asemenea, vom utiliza funcția Msgbox să ne dea un mesaj dacă fișierul este salvat sau nu.

ETAPE:

  • La început, mergeți la Dezvoltator tab> Visual Basic > Introduceți > Modul .
  • Sau, făcând clic dreapta pe pe foaia de lucru se va deschide o fereastră. De acolo, accesați Vezi codul .
  • Și, acest lucru vă va duce la Editor Visual Basic unde putem scrie Macros VBA .
  • Pe de altă parte, apăsarea Alt + F11 va deschide, de asemenea, fereastra Editor Visual Basic .
  • După aceea, tastați VBA cod.

Cod VBA:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrks.Range("A1").Value & " Print " &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) End Function 
  • Și, rulați codul pentru a vedea rezultatul, apăsând butonul Tasta F5 .

  • Aceasta va apărea în Msgbox și asigurați-vă că fișierul PDF este acum pregătit pentru imprimare.

  • În mod similar, la fel ca și înainte, veți observa că un fișier PDF Workbook a fost deja salvat în această locație de pe computerul dvs. Ca urmare, numele fișierului este păstrat în mod implicit. Pe măsură ce setați numele fișierului Imprimă PDF , a salvat numele fișierului Imprimare PDF.

Dacă vă uitați la explicația codului anterior, veți înțelege liniile de cod în mod corespunzător. Nu este nevoie să modificați codul, ci doar să schimbați intervalele în funcție de preferințele dvs. Puteți copia codul și îl puteți utiliza în scop de lucru.

Citește mai mult: Macro Excel pentru a salva ca PDF cu nume de fișier din valoarea celulei (2 exemple)

7. Codul Excel VBA pentru a imprima în PDF și a salva numele fișierului în mod automat

Să ne uităm la o altă metodă Excel VBA pentru imprimarea în PDF și stocarea automată a numelui de fișier.

ETAPE:

  • Pentru a începe, navigați la pagina Dezvoltator de pe panglică.
  • În al doilea rând, în secțiunea Cod, selectați Visual Basic pentru a lansa programul Editor Visual Basic Pentru a deschide fereastra Editor Visual Basic , faceți clic pe Alt + F11 .
  • Alternativ, puteți face clic dreapta pe foaia de lucru și să selectați Vezi codul Acest lucru vă va duce la Editor Visual Basic de asemenea.
  • Aceasta va fi afișată în fereastra Editor Visual Basic , unde vom scrie codul pentru a genera un tabel dintr-un interval.
  • În al treilea rând, din bara de meniu derulantă Insert, selectați Modul .
  • Și, copiați și lipiți VBA codul prezentat mai jos.

Cod VBA:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam &; ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ReîncepețiexitHandler End Sub 
  • Apoi, executați codul făcând clic pe butonul RubSub sau prin apăsarea butonului F5 scurtătură de la tastatură.

  • În special, deci, un Msgbox va apărea.

  • Fișierul este salvat ca PDF cu același nume de fișier automat ca în exemplul anterior.

Explicația codului VBA

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Acestea sunt pentru a obține dosarul activ al registrului de lucru în cazul în care registrul de lucru este salvat.

 sf = snam & &; ".pdf" slocf = sloc & sf 

Acest lucru va crea numele implicit pentru salvarea fișierelor.

 wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Acest bloc exportă doar fișierul Excel în PDF în folderul curent.

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

Acest lucru ne va permite să vedem un mesaj de confirmare cu informații despre fișier în Microsoft Excel.

Citește mai mult: Imprimare în PDF utilizând butonul Macro în Excel (5 variante de macro)

8. Imprimă o anumită foaie Excel cu nume de fișier automat

Să ne uităm la o altă metodă Excel VBA pentru imprimarea în PDF și stocarea automată a numelui fișierului.

ETAPE:

  • În primul rând, selectați Dezvoltator din panglica de pe panglică.
  • În al doilea rând, în conformitate cu Cod categorie, selectați Visual Basic pentru a lansa programul Editor Visual Basic Alternativ, apăsați Alt + F11 pentru a lansa programul Editor Visual Basic .
  • În schimb, faceți clic dreapta pe foaia de lucru și selectați Vezi codul .
  • Aceasta se va afișa în fereastra Editor Visual Basic , unde vom scrie codul nostru pentru a genera un tabel dintr-un interval.
  • În al treilea rând, selectați Module (Modul) din bara de meniu derulant Insert (Inserare).
  • În continuare, copiați și lipiți fișierul Cod VBA mai jos.

Cod VBA:

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • În plus, rulați codul făcând clic pe butonul RubSub sau cu ajutorul butonului F5 scurtătură de la tastatură.

  • Acest fișier este salvat ca PDF cu același nume ca în exemplul anterior.

Explicația codului VBA

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Aceste blocuri de coduri sunt destinate creării și atribuirii de variabile.

 rng.ExportAsFixedFormat Tip:=xlTypePDF, _ filename:=loc 

Acest lucru va salva o serie de date de fișier în format PDF.

Citește mai mult: Cum să convertiți Excel în PDF fără a pierde formatarea (5 moduri eficiente)

9. Salvați numele fișierului într-un mod automat în timp ce imprimați în PDF în Excel VBA

Să ne uităm la o altă metodă Excel VBA pentru imprimarea în PDF și stocarea automată a numelui de fișier.

ETAPE:

  • Pentru început, selectați Dezvoltator din panglica de pe panglică.
  • În al doilea rând, alegeți Visual Basic de la Cod pentru a deschide fereastra Editor Visual Basic . Click Alt + F11 pentru a lansa programul Editor Visual Basic .
  • De asemenea, puteți face clic dreapta pe foaia de calcul și să selectați Vezi codul Acest lucru vă va duce, de asemenea, la Editor Visual Basic .
  • Acum, putem vedea Editor Visual Basic , unde vom scrie codul pentru a crea un tabel dintr-un interval.
  • În continuare, selectați Modul de la Introduceți bara de meniu derulantă.
  • Apoi, copiați și lipiți fișierul VBA codul care urmează.

Cod VBA:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Copiază foile în noul fișier PDF pentru trimiterea prin e-mail Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & shtamp &; ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Salvat ca fișier .pdf: " & vbCrLf & vbCrLf & vbCrLf & SvAs & _ "Revizuiți documentul .pdf."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • Codul va fi executat apoi prin apăsarea butonului RubSub sau cu ajutorul butonului F5 scurtătură de la tastatură.

Explicația codului VBA

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" 

Pentru a obține fișierul în format pdf și pentru a salva numele pdf-ului.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Aceasta setează doar calitatea imprimării.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Salvat ca fișier .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Revizuirea documentului .pdf." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Nu se poate salva ca fișier .pdf.PDF." Automatioc_Name = False 

Aceste rânduri vor instrui utilizatorul cum să trimită fișierul pentru a-l imprima în format pdf.

Citește mai mult: Cum să salvați Excel ca PDF fără să tăiați (4 moduri adecvate)

Concluzie

Metodele de mai sus vă vor ajuta să faceți această muncă din Imprimare în PDF și salvare automată a numelui de fișier în Excel VBA Sper că acest lucru vă va fi de ajutor! Dacă aveți întrebări, sugestii sau feedback, vă rugăm să ne anunțați în secțiunea de comentarii. Sau puteți arunca o privire la celelalte articole din secțiunea ExcelWIKI.com blog!

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.