Gem Excel Range som PDF ved hjælp af VBA

Indholdsfortegnelse:

Anonim

For at gemme et valgt område i excel (sig en kvittering) som PDF i Excel ved hjælp af VBA, brug nedenstående syntaks.

Den generiske kode

Under SaveRangeAsPDF () Rækkevidde.ExportAsFixedFormat Type: = xlTypePDF, Filnavn:= _ "C: \ Brugere \ filnavn", Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub 

Ovenstående kode er en generisk kode til at gemme et fast område som et PDF -dokument. Når din optagemakro, mens du eksporterer excel til PDF, vises en lignende kode.

Rækkevidde:Det kan være et fast område, et dynamisk område eller et udvalg. Du skal definere det.

Filnavn: Dette er det fuldt kvalificerede navn på pdf. Definer det som en streng.

Resten af ​​variablerne kan efterlades som den er. Jeg har forklaret dem efter eksempel.

Eksempel: Udskriv Excel -kvittering som en PDF ved hjælp af VBA

Lad os sige, at du regelmæssigt skal udskrive og sende kvitteringer i Excel. I så fald vil du gerne have det automatiseret. Du ville ikke have eksport til pdf igen og igen. Hvis du bare kan bruge en knap til at gøre dette, ville det være nyttigt, ikke sandt?

Her har jeg designet dette kvitteringsformat. Jeg vil udskrive/gemme/eksportere det som en pdf ved hjælp af knappen "Opret PDF".

Denne kvittering dækker området "A2: L21". Jeg har allerede indstillet udskriftsområdet.

For at gemme på dette excel -område som PDF bruger vi ovennævnte generiske VBA -kode til eksport af excel -ark til pdf. Vi justerer koden efter vores krav.

Sub PrintSelectionToPDF () Dim invoiceRng As Range Dim pdfile As String 'Indstillingsområde, der skal udskrives Angiv invoiceRng = Range ("A1: L21")' indstillingsfilnavn med et tidsstempel. pdfile = "faktura" & "_" & Format (Nu (), "yyyymmdd_hhmmss") & ".pdf" 'indstilling af det fuldt kvalificerede navn. Den resulterende pdf vil blive gemt, hvor hovedfilen findes. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Filnavn: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = False, _ OpenAfterPublish: 

Brug af koden:

Kopier ovenstående kode i din kvitteringsfil ved at åbne VBA -editoren (brug Alt+F11). Juster området og filstien (hvis du vil) i den kode, du vil udskrive. Du kan downloade arbejdsfilen herunder.

Gem Excel Range som PDF ved hjælp af VBA

Forklaring:

Dim factureRng As Range Dim pdfile As String 

Koden er enkel. For det første har vi oprettet to variabler. "FakturaRng som område" for det område/ark, som vi vil gemme som pdf. strFile for det fuldt kvalificerede filnavn på den resulterende PDF.

Angiv invoiceRng = Range ("A1: L21") 

Da vores udskriftsområde er fast, sætter vi fakturaintervallet til område ("A1: L21").

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

I de ovenstående to linjer navngiver vi først filen med et tidsstempel og tilføjer derefter til stien til hovedfilen. Som følge heraf indeholder pdfile det fuldt kvalificerede navn på den resulterende pdf -fil.

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

Endelig bruger vi ExpoortAsFixedFormat -metoden i Range -klassen til at udskrive det definerede Excel -område som PDF. Vi definerer typen som xlTypePDF. Et andet valg er xlTypeXPS, som gemmer det valgte område som XPS -fil.

Vi indstiller filnavnet som pdfile, som indeholder strengen med det fuldt kvalificerede navn på pdf -filen. Du kan skrive en hårdkodet tekst her eller tilpasse den efter dine behov.

Derefter indstiller vi kvaliteten af ​​pdfilen som xlQualityStandard. Vi har et andet valg som xlQualityMinimum.

Dernæst angiver vi IncludeDocProperties som True. Det betyder, at den resulterende PDF vil have egenskaberne af et dokument.

Derefter satte vi IgnorePrintAreas som True. Det betyder, at det ignorerer ethvert udskriftsområde, der allerede er indstillet.

Endelig angiver vi OpenAfterPublish som Falsk. Det betyder, at den fil, du opretter, ikke åbnes automatisk. Jeg angav det forkert, fordi jeg opretter 100'er af filer ved hjælp af en loop, og jeg vil ikke have, at de åbnes. Hvis du vil åbne filen efter at have oprettet ved hjælp af excel, skal du indstille den True.

Brug af udskrivning af valgt sortiment som pdf

En grundlæggende brug er at udskrive det valgte område ved blot at klikke på en knap. Men den bedste brug er at bruge den i en loop, hvor du skal oprette flere kvitteringer til forskellige klienter. Opret en sub til udfyldning af data, og brug derefter denne kode til at udskrive det valgte område i en loop.

Så ja fyre, sådan kan du gemme det udvalgte område som pdf. Jeg håber, det var nyttigt for dig. Hvis du stadig er i tvivl eller forespørgsel vedrørende print i excel ved hjælp af VBA, spørg i kommentarfeltet herunder.

Udskriv flere markeringer på et ark ved hjælp af VBA i Microsoft Excel | Vælg flere områder, og udskriv hvert område i et andet ark ved hjælp af VBA.

Udskriv alle projektmapper i en mappe ved hjælp af VBA i Microsoft Excel | Brug denne VBA -kode til at udskrive og gemme hver Excel -projektmappe i en mappe ved hjælp af.

Populære artikler:

Opdel Excel -ark i flere filer baseret på kolonne ved hjælp af VBA | Denne VBA -kode deler excelarkbase på unikke værdier i en specificeret kolonne. Download arbejdsfilen.

Slå advarselsmeddelelser fra ved hjælp af VBA i Microsoft Excel 2016 | For at deaktivere advarselsmeddelelser, der afbryder den kørende VBA -kode, bruger vi applikationsklassen.

Tilføj og gem ny arbejdsmappe ved hjælp af VBA i Microsoft Excel 2016 | For at tilføje og gemme projektmapper ved hjælp af VBA bruger vi Workbooks -klassen. Workbooks.Add tilføjer dog let en ny projektmappe …