Spara Excel Range som PDF med VBA

Innehållsförteckning:

Anonim

För att spara ett valt intervall i excel (säg ett kvitto) som PDF i Excel med VBA, använd nedan syntax.

Den generiska koden

Sub SaveRangeAsPDF () Räckvidd.ExportAsFixedFormat Type: = xlTypePDF, Filnamn:= _ "C: \ Användare \ filnamn", Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub 

Ovanstående kod är en generisk kod för att spara ett fast intervall som ett PDF -dokument. När ditt inspelningsmakro när du exporterar excel till PDF visas en liknande kod.

Räckvidd:Det kan vara ett fast område, ett dynamiskt område eller ett urval. Du måste definiera det.

Filnamn: Detta är det fullt kvalificerade namnet på pdf. Definiera det som en sträng.

Resten av variablerna kan lämnas som den är. Jag har förklarat dem efter exempel.

Exempel: Skriv ut Excel -kvitto som en PDF med VBA

Låt oss säga att du måste skriva ut och skicka kvitton i Excel regelbundet. I så fall skulle du vilja ha det automatiserat. Du skulle inte vilja göra exporten excel till pdf om och om igen. Om du bara kan använda en knapp för att göra detta skulle det vara till hjälp, eller hur?

Här har jag utformat detta kvittoformat. Jag vill skriva ut/spara/exportera den som en pdf med knappen "Skapa PDF".

Detta kvitto täcker intervallet "A2: L21". Jag har redan ställt in utskriftsområdet.

För att spara på detta excelintervall som PDF använder vi ovan nämnda generiska VBA -kod för att exportera excelblad till pdf. Vi kommer att justera koden enligt våra krav.

Sub PrintSelectionToPDF () Dim invoiceRng As Range Dim pdfile As String 'Inställningsintervall som ska skrivas ut Ställ in invoiceRng = Range ("A1: L21")' inställningsfilnamn med en tidsstämpel. pdfile = "faktura" & "_" & Format (Now (), "yyyymmdd_hhmmss") & ".pdf" 'anger fullständigt kvalificerat namn. Den resulterande pdf -filen sparas där huvudfilen finns. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Filnamn: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = False, _ OpenAfterPublish: 

Använda koden:

Kopiera koden ovan i kvittofilen genom att öppna VBA -redigeraren (använd Alt+F11). Justera intervallet och filvägen (om du vill) i koden som du vill skriva ut. Du kan ladda ner arbetsfilen nedan.

Spara Excel Range som PDF med VBA

Förklaring:

Dim invoiceRng As Range Dim pdfile As String 

Koden är enkel. Först har vi skapat två variabler. "FakturaRng som intervall" för intervallet/bladet som vi vill spara som pdf. strFile för det fullständigt kvalificerade filnamnet för den resulterande PDF -filen.

Ange invoiceRng = Range ("A1: L21") 

Eftersom vårt utskriftsintervall är fast ställer vi in ​​fakturaintervallet som intervall ("A1: L21").

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

På de två ovanstående raderna namnger vi filen först med en tidsstämpel och lägger sedan till sökvägen till huvudfilen. Som ett resultat innehåller pdfile det fullständiga namnet på den resulterande pdf -filen.

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

Slutligen använder vi ExpoortAsFixedFormat -metoden i Range -klassen för att skriva ut det definierade Excel -intervallet som PDF. Vi definierar typ som xlTypePDF. Ett annat val är xlTypeXPS, vilket sparar det valda intervallet som XPS -fil.

Vi ställer in filnamnet som pdfile, som innehåller strängen av det fullt kvalificerade namnet på pdf -filen. Du kan skriva en hårdkodad text här eller anpassa den efter dina behov.

Därefter ställer vi in ​​kvaliteten på pdfilen som xlQualityStandard. Vi har ett annat val som xlQualityMinimum.

Därefter anger vi IncludeDocProperties som True. Det betyder att den resulterande PDF -filen kommer att ha egenskaperna hos ett dokument.

Sedan ställer vi in ​​IgnorePrintAreas som True. Det betyder att det kommer att ignorera alla utskriftsområden som redan är inställda.

Slutligen ställer vi in ​​OpenAfterPublish som False. Det betyder att filen du skapar inte öppnas automatiskt. Jag ställer in den falsk eftersom jag skapar 100 -tals filer med en loop och jag vill inte att de ska öppnas. Om du vill öppna filen efter att ha skapat med excel, ställ in den True.

Användning av utskrift av valt sortiment som pdf

En grundläggande användning är att skriva ut det valda intervallet genom att bara klicka på en knapp. Men den bästa användningen är att använda den i en loop där du behöver skapa flera kvitton för olika klienter. Skapa en sub för att fylla i data och använd sedan den här koden för att skriva ut det valda intervallet i en loop.

Så ja killar, så här kan du spara valt område som pdf. Jag hoppas att det var användbart för dig. Om du fortfarande har några tvivel eller frågor angående utskrift i Excel med VBA, fråga i kommentarfältet nedan.

Skriv ut flera val på ett ark med VBA i Microsoft Excel | Välj flera intervall och skriv ut varje intervall i ett annat ark med VBA.

Skriv ut alla arbetsböcker i en mapp med VBA i Microsoft Excel | Använd den här VBA -koden för att skriva ut och spara varje Excel -arbetsbok i en mapp med.

Populära artiklar:

Dela Excel -blad i flera filer baserat på kolumn med VBA | Den här VBA -koden delar Excel -basen på unika värden i en specifik kolumn. Ladda ner arbetsfilen.

Stäng av varningsmeddelanden med VBA i Microsoft Excel 2016 | För att stänga av varningsmeddelanden som avbryter den körande VBA -koden använder vi applikationsklassen.

Lägg till och spara ny arbetsbok med VBA i Microsoft Excel 2016 | För att lägga till och spara arbetsböcker med VBA använder vi Workbooks -klassen. Workbooks.Add lägger till ny arbetsbok enkelt, dock …