Excel VBA til at udskrive som PDF og gemme med automatisk filnavn

  • Del Dette
Hugh West

Der er fordele ved at eksportere en Excel regneark som et PDF dokumentet. Ved at ændre filen til PDF-format vil vi kunne udskrive og dele den med forskellige professionelle forbindelser. PDF-filer er en pålidelig standard til eksport af dokumenter, som du føler behov for at dele med andre eller offentliggøre. I denne artikel vil vi demonstrere nogle eksempler på VBA til at udskrive som PDF og gemme med et automatisk filnavn.

Download arbejdsbog til øvelser

Du kan downloade arbejdsbogen og øve dig med dem.

VBA Udskriv til PDF.xlsm

9 eksempler på Excel VBA til at udskrive som PDF og gemme med automatisk filnavn i Excel

Vi kan nemt udskrive en Excel-fil som en PDF-fil og gemme filen med et automatisk filnavn ved hjælp af Excel-værktøjslinjen. Men det ville være nemmere med Excel VBA . Vi har bare brug for den VBA Vi har ikke brug for så mange klik for at udføre opgaven, og det sparer os tid.

Visual Basic for Applications ( VBA ) er en programmeringsmodel og et isoleret program, som oftest ses i Microsoft Office Det er et analytisk værktøj, der ofte findes som Excel-tilføjelser , der optimerer manuelle operationer som f.eks. monotone, tidskrævende opgaver. Den kan også generere CSV Lad os se nogle eksempler på at udskrive excel-filen som PDF-fil med det automatiske filnavn.

1. Udskriv arbejdsbog til PDF & Gem filnavnet automatisk i Excel

Lad os antage, at vi vil udskrive hele arbejdsbogen og gemme filnavnet, som vi sætter navnet på vores kode. Lad os nu antage, at vi vil gemme en PDF-fil på vores computer Lokal disk (E:) Som vi kan se på billedet nedenfor, indeholder placeringen ikke nogen pdf-filer. Når vi har kørt VBA-koden, vil vi kunne se vores ønskede PDF fil på det pågældende sted på vores pc.

Med Excel VBA kan brugerne nemt bruge koden, der fungerer som Excel-menuer fra båndet. For at bruge koden VBA kode til at udskrive pdf og gemme med et automatisk filnavn, lad os følge proceduren.

TRIN:

  • Først skal du gå til Udvikler fanen fra farvebåndet.
  • For det andet, fra den Kode kategori, klik på Visual Basic for at åbne den Visual Basic-editor . eller tryk på Alt + F11 for at åbne den Visual Basic-editor .

  • I stedet for at gøre dette kan du bare højreklikke på dit regneark og gå til Se kode Dette vil også føre dig til Visual Basic-editor .

  • Dette vil fremgå af Visual Basic-editor hvor vi skriver vores koder til at oprette en tabel fra et interval.
  • For det tredje skal du klikke på Modul fra den Indsæt drop-down-menulinjen.

  • Dette vil skabe en Modul i din arbejdsbog.
  • Og kopier og indsæt den VBA kode vist nedenfor.

VBA-kode:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filnavn:=loc End Sub 
  • Kør koden ved at trykke på F5 på dit tastatur.

  • Endelig kan du se, at et PDF-filnavn, Arbejdsbog er nu placeret på denne sti på din computer. Det betyder, at filnavnet automatisk gemmes.

  • Og til sidst, hvis du går tilbage til din projektmappe, kan du se nogle stiplede linjer. Det skyldes, at filen nu er klar til udskrivning.

Forklaring af VBA-kode

 Sub Print_Workbook() 

Under er en del af koden, der bruges til at håndtere arbejdet i koden, men som ikke returnerer nogen værdi. Den er også kendt som en underprocedure. Så vi kalder vores procedure Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Denne linje er til placering og pdf-filnavn. Her gemmer vi vores fil i E: på vores computer og navngive filen Arbejdsbog .

 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, filnavn:=loc 

Denne kodelinje bruges til at eksportere excel-filen som PDF-fil og gøre den klar til udskrivning.

 End Sub 

Dette afslutter proceduren.

Læs mere: Eksporter Excel til PDF med hyperlinks (2 hurtige metoder)

2. Gem aktivt regneark automatisk som PDF

Lad os se et andet eksempel, hvor du udskriver et aktivt ark til en pdf-fil og gemmer filnavnet automatisk ved hjælp af Excel VBA .

TRIN:

  • Først skal du gå til Udvikle r-fanen fra farvebåndet.
  • For det andet skal du klikke på Visual Basic for at åbne den Visual Basic-editor .
  • En anden måde at åbne den Visual Basic-editor er blot at trykke på Alt + F11 .
  • Eller højreklik på arket, og vælg derefter Se kode .
  • Derefter skal du gå til Indsæt og vælg Modul fra rullemenuen.
  • Dette vil åbne vinduet Visual Basic.
  • Herefter skal du kopiere og indsætte VBA-kode nedenfor.

VBA-kode:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filnavn:=loc End Sub 
  • Tryk desuden på F5-tasten eller klik på den Kør under knappen for at køre koden.

  • Ligesom i det foregående eksempel gemmes filen som en PDF-fil med det automatiske filnavn.

Hvis du læser eksempel1's kodeforklaring, vil du også forstå dette.

Læs mere: Excel-makro: Gem som PDF med dato i filnavnet (4 passende eksempler)

3. Udskriv PDF-fil fra Excel med VBA i Range

Lad os se på et andet eksempel på anvendelse af Excel VBA til at udskrive et aktivt ark til pdf og gemme filnavnet automatisk.

TRIN:

  • For at begynde skal du klikke på Udvikler på fanen på farvebåndet.
  • For det andet skal du starte Visual Basic-editor ved at klikke på Visual Basic .
  • Alternativt kan du få adgang til Visual Basic-editor ved at trykke på Alt + F11 .
  • Eller, højreklik på på arket og vælg Se kode fra menuen.
  • Vælg derefter den Modul fra rullemenuen under Indsæt .
  • Vinduet med Visual Basic vises.
  • Skriv koden der.

VBA-kode:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Endelig skal du trykke på F5-tasten for at køre koden.

  • Herefter kan du se, at der er blevet tilføjet en PDF-fil med navnet Workbook til den pågældende placering på din computer. Som følge heraf bevares filnavnet automatisk.

Læs mere: Udskriv område til PDF med VBA i Excel (5 nemme eksempler)

4. Excel VBA til at lave en sløjfe på tværs af det valgte ark og udskrive PDF

Lad os se på en anden måde at udskrive til PDF og gemme filnavnet automatisk.

TRIN:

  • For at starte skal du åbne båndet og vælge Udvikler mulighed.
  • For at få adgang til den Visual Basic-editor , klik på Visual Basic .
  • Tryk på Alt + F11 vil også få vist Visual Basic-editor .
  • Alternativt, højreklik på arket og vælg Se kode fra den menu, der vises.
  • Nu, fra den Indsæt rullemenuen, vælg Modul .
  • Kopier og indsæt derefter VBA kode, der følger.

VBA-kode:

 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, _ filnavn:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Kør koden ved at trykke på F5 nøgle.

  • Til sidst kan du se, at der er blevet uploadet en PDF-fil fra Workbook til dette område på din computer. Som følge heraf bevares filnavnet automatisk.

Dette gemmer filen som arknummeret i arbejdsmappen.

Forklaring af VBA-kode

 For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filnavn:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Næste wrksht 

Denne kodelinje i for-loopet er beregnet til at eksportere Excel-filen som pdf-fil og udskrive filen.

Læs mere: Excel VBA: ExportAsFixedFormat PDF med Fit to Page (3 eksempler)

5. Udskriv til PDF og gem filnavnet instinktivt i Excel

Tag nu et kig på en anden Excel VBA-metode til at gemme Excel-filer til pdf og navngive filen automatisk system.

TRIN:

  • For at begynde skal du åbne båndet og vælge Udvikler fra rullemenuen.
  • Vælg derefter Visual Basic for at åbne den Visual Basic-editor .
  • Visual Basic-editor kan også tilgås ved at trykke på Alt + F11 .
  • Alternativt kan du højreklik på arket og vælg Se kode fra genvejsmenuen.
  • Derefter skal du vælge Modul fra den Indsæt drop-down-menuen.
  • Kopier og indsæt desuden følgende VBA-kode.

VBA-kode:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filnavn:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Til sidst skal du køre koden ved at trykke på F5 på dit tastatur, og du kan se resultatet.

  • Du vil efterfølgende se, at en Arbejdsbog PDF filen allerede var gemt på dette sted på din pc. Som følge heraf bevares filnavnet automatisk.

På samme måde som i det tidligere eksempel vil dette også gemme pdf-filen som arknummer.

Forklaring af VBA-kode

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

Kodeblokken er til udskrivning og lagring af excel-filen som pdf-fil.

Læs mere: Udskrivning til PDF og e-mail ved hjælp af VBA i Excel (2 nyttige tilfælde)

6. VBA-funktion til automatisk at udskrive PDF og gemme filnavnet automatisk

Lad os undersøge en anden Excel VBA-måde til at udskrive til PDF og gemme filnavnet automatisk. Vi bruger en funktion og gemmer filen til PDF i dette eksempel. Vi bruger også funktionen Msgbox til at give os en meddelelse om, hvorvidt filen er gemt eller ej.

TRIN:

  • I begyndelsen skal du gå til Udvikler faneblad> Visual Basic > Indsæt > Modul .
  • Eller, højreklik på på regnearket vil åbne et vindue, hvorfra du kan gå til Se kode .
  • Og dette fører dig til den Visual Basic-editor feltet, hvor vi kan skrive VBA-makroer .
  • På den anden side kan du ved at trykke på Alt + F11 vil også åbne den Visual Basic-editor .
  • Derefter skal du skrive VBA kode.

VBA-kode:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc 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 = slocamp & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveSaveAsFilename(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, filnavn:=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 
  • Og kør koden for at se resultatet ved at trykke på F5-tasten .

  • Dette vil blive vist i Msgbox og sørg for, at PDF-filen nu er klar til udskrivning.

  • På samme måde som tidligere vil du bemærke, at en PDF-fil til arbejdsmappen allerede er blevet gemt på denne placering på din computer. Som følge heraf bevares filnavnet som standard. Da vi indstiller filnavnet Udskriv PDF , den gemte filnavnet Udskriv PDF.

Hvis du ser på den tidligere kodeforklaring, vil du forstå kodens linjer korrekt. Du behøver ikke at ændre koden, du skal blot ændre intervallerne efter dine præferencer. Du kan kopiere koden og bruge den til dit arbejdsformål.

Læs mere: Excel-makro til at gemme som PDF med filnavn fra celleværdi (2 eksempler)

7. Excel VBA-kode til at udskrive til PDF og gemme filnavnet automatisk

Lad os se på en anden Excel VBA-metode til udskrivning til PDF og automatisk lagring af filnavnet.

TRIN:

  • For at begynde skal du navigere til Udvikler på fanen på farvebåndet.
  • For det andet skal du under afsnittet Kode vælge Visual Basic for at starte Visual Basic-editor . for at åbne den Visual Basic-editor , klik Alt + F11 .
  • Alternativt kan du bare højreklikke på dit regneark og vælge Se kode Dette vil føre dig til Visual Basic-editor også.
  • Dette vil blive vist i Visual Basic-editor , hvor vi vil skrive koden til at generere en tabel fra et interval.
  • For det tredje skal du i rullemenulinjen Indsæt vælge Modul .
  • Og kopier og indsæt den VBA kode vist nedenfor.

VBA-kode:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc 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 = slocamp &; sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filnavn:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler End Sub 
  • Derefter skal du udføre koden ved at klikke på RubSub knappen eller ved at trykke på F5 tastaturgenvej.

  • Især derfor er det vigtigt, at en Msgbox vil blive vist.

  • Filen gemmes som en PDF-fil med det samme automatiserede filnavn som i det foregående eksempel.

Forklaring af VBA-kode

 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 

De er til at hente den aktive mappe til arbejdsmappen, hvis arbejdsmappen gemmes.

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

Dette vil oprette standardnavnet til at gemme filer.

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

Denne blok eksporterer bare Excel-filen til PDF-filen i den aktuelle mappe.

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

Dette vil give os mulighed for at se en bekræftelsesmeddelelse med filoplysninger i Microsoft Excel.

Læs mere: Udskriv til PDF ved hjælp af makroknap i Excel (5 makrovarianter)

8. Udskriv et bestemt Excel-ark med automatisk filnavn

Lad os se på en anden Excel VBA-metode til udskrivning til PDF og automatisk lagring af filnavnet.

TRIN:

  • Vælg i første omgang den Udvikler fanen fra farvebåndet.
  • For det andet, i henhold til Kode kategori, skal du vælge Visual Basic for at starte Visual Basic-editor . Du kan også trykke på Alt + F11 for at starte Visual Basic-editor .
  • Højreklik i stedet på dit regneark, og vælg Se kode .
  • Dette vil blive vist i Visual Basic-editor , hvor vi vil skrive vores kode til at generere en tabel fra et interval.
  • For det tredje skal du vælge Modul i rullelisten Indsæt i menulinjen Indsæt.
  • Endvidere skal du kopiere og indsætte VBA-kode nedenfor.

VBA-kode:

 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, _ filnavn:=loc End Sub 
  • Kør desuden koden ved at klikke på RubSub knappen eller ved hjælp af F5 tastaturgenvej.

  • Denne fil gemmes som en PDF-fil med det samme navn som i det foregående eksempel.

Forklaring af VBA-kode

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

Disse blokke i koderne er beregnet til at oprette og tildele variabler.

 rng.ExportAsFixedFormat Type:=xlTypePDF, _ filnavn:=loc 

Dette vil gemme en række fildata som PDF.

Læs mere: Sådan konverteres Excel til PDF uden at miste formatering (5 effektive måder)

9. Gem filnavnet på en automatisk måde, mens du udskriver til PDF i Excel VBA

Lad os se på en anden Excel VBA-metode til udskrivning til PDF og automatisk lagring af filnavnet.

TRIN:

  • Til at begynde med skal du vælge den Udvikler fanen fra farvebåndet.
  • For det andet skal du vælge Visual Basic fra den Kode område for at åbne Visual Basic-editor . Klik Alt + F11 for at starte Visual Basic-editor .
  • Du kan også højreklikke på dit regneark og vælge Se kode Dette vil også føre dig til den Visual Basic-editor .
  • Nu kan vi se den Visual Basic-editor , hvor vi skriver koden til at oprette en tabel ud fra et interval.
  • Vælg desuden Modul fra den Indsæt drop-down-menulinjen.
  • Derefter kopierer du og indsætter VBA kode, der følger.

VBA-kode:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Kopierer ark til ny PDF-fil til e-mailing 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 & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filnavn:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Gemt som .pdf-fil: " & vbCrLf & vbCrLf & SvAs & _ "Gennemgå .pdf-dokumentet."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: EndMacro: End Function 
  • Koden vil derefter blive udført ved at klikke på RubSub knappen eller ved hjælp af F5 tastaturgenvej.

Forklaring af VBA-kode

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

For at få filen som en pdf-fil og gemme navnet på pdf-filen.

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

Dette indstiller blot udskriftskvaliteten.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filnavn:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Gemt som .pdf-fil: " & vbCrLf & vbCrLf & vbCrLf & SvAs & _ "Gennemgå .pdf-dokumentet." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save asPDF." Automatioc_Name = False 

Disse linjer vil instruere brugeren om, hvordan filen skal sendes for at udskrive den som en pdf-fil.

Læs mere: Sådan gemmer du Excel som PDF uden at skære af (4 egnede måder)

Konklusion

Ovenstående metoder vil hjælpe dig med at gøre dette arbejde fra Udskriv til PDF og gem automatisk filnavn i Excel VBA Jeg håber, at dette vil hjælpe dig! Hvis du har spørgsmål, forslag eller feedback, så lad os vide det i kommentarfeltet. Eller du kan tage et kig på vores andre artikler i ExcelWIKI.com blog!

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.