Lagre Excel Range som PDF ved hjelp av VBA

Innholdsfortegnelse:

Anonim

For å lagre et valgt område i excel (si en kvittering) som PDF i Excel ved hjelp av VBA, bruk syntaksen nedenfor.

Den generiske koden

Sub SaveRangeAsPDF () Område.ExportAsFixedFormat Type: = xlTypePDF, Filnavn:= _ "C: \ Users \ filnavn", Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub 

Koden ovenfor er en generisk kode for å lagre et fast område som et PDF -dokument. Når registreringsmakroen mens du eksporterer excel til PDF, vil en lignende kode vises.

Område:Det kan være et fast område, et dynamisk område eller et utvalg. Du må definere det.

Filnavn: Dette er det fullt kvalifiserte navnet på pdf. Definer det som en streng.

Resten av variablene kan stå som det er. Jeg har forklart dem etter eksempel.

Eksempel: Skriv ut Excel -kvittering som en PDF ved hjelp av VBA

La oss si at du må skrive ut og sende kvitteringer i Excel med jevne mellomrom. I så fall vil du gjerne ha det automatisert. Du vil ikke gjøre eksporten til pdf om og om igjen. Hvis du bare kan bruke en knapp for å gjøre dette, ville det være nyttig, ikke sant?

Her har jeg designet dette kvitteringsformatet. Jeg vil skrive ut/lagre/eksportere den som en pdf ved hjelp av knappen "Lag PDF".

Denne kvitteringen dekker området "A2: L21". Jeg har allerede angitt utskriftsområdet.

For å lagre dette excel -området som PDF, bruker vi den ovennevnte generiske VBA -koden for eksport av excel -ark til pdf. Vi vil justere koden i henhold til våre krav.

Sub PrintSelectionToPDF () Dim invoiceRng As Range Dim pdfile As String 'Innstillingsområde som skal skrives Angi invoiceRng = Range ("A1: L21")' innstillingsfilnavn med et tidsstempel. pdfile = "faktura" & "_" & Format (Nå (), "åååååmm_hhmmss") & ".pdf" 'som angir det fullt kvalifiserte navnet. Den resulterende pdf -filen blir lagret der hovedfilen finnes. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Filnavn: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = False, _ OpenAfterPublish: 

Bruke koden:

Kopier koden ovenfor i kvitteringsfilen ved å åpne VBA -editoren (bruk Alt+F11). Juster området og filbanen (hvis du vil) i koden du vil skrive ut. Du kan laste ned arbeidsfilen nedenfor.

Lagre Excel Range som PDF ved hjelp av VBA

Forklaring:

Dim factureRng As Range Dim pdfile As String 

Koden er enkel. Først har vi laget to variabler. "FakturaRng som område" for området/arket som vi ønsker å lagre som pdf. strFile for det fullt kvalifiserte filnavnet til den resulterende PDF -filen.

Angi invoiceRng = Range ("A1: L21") 

Siden utskriftsområdet vårt er fast, setter vi fakturaområdet til område ("A1: L21").

pdfile = "faktura" & "_" & Format (Nå (), "åååååmm_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile 

I de to linjene ovenfor gir vi først navnet til filen med et tidsstempel og legger deretter til banen til hovedfilen. Som et resultat inneholder pdfile det fullt kvalifiserte navnet på den resulterende pdf -filen.

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

Til slutt bruker vi ExpoortAsFixedFormat -metoden i Range -klassen for å skrive ut det definerte Excel -området som PDF. Vi definerer type som xlTypePDF. Et annet valg er xlTypeXPS, som lagrer det valgte området som XPS -fil.

Vi setter filnavnet som pdfile, som inneholder strengen til det fullt kvalifiserte navnet på pdf -filen. Du kan skrive en hardkodet tekst her eller tilpasse den etter behov.

Deretter angir vi kvaliteten på pdfilen som xlQualityStandard. Vi har et annet valg som xlQualityMinimum.

Deretter setter vi IncludeDocProperties som True. Det betyr at den resulterende PDF -filen vil ha egenskapene til et dokument.

Deretter setter vi IgnorePrintAreas som True. Det betyr at det vil ignorere ethvert utskriftsområde som allerede er angitt.

Til slutt setter vi OpenAfterPublish som False. Det betyr at filen du oppretter ikke åpnes automatisk. Jeg angir det feil fordi jeg lager 100 -tallet med filer ved hjelp av en loop, og jeg vil ikke at de skal åpne. Hvis du vil åpne filen etter å ha opprettet med excel, angir du den True.

Bruk av utskrift av valgt utvalg som pdf

En grunnleggende bruk er å skrive ut det valgte området bare ved å klikke på en knapp. Men den beste bruken er å bruke den i en loop hvor du må opprette flere kvitteringer for forskjellige klienter. Lag en sub for fylling av data, og bruk deretter denne koden til å skrive ut det valgte området i en sløyfe.

Så ja gutta, slik kan du lagre valgt utvalg som pdf. Jeg håper det var nyttig for deg. Hvis du fortsatt har tvil eller spørsmål angående utskrift i excel ved hjelp av VBA, kan du spørre i kommentarfeltet nedenfor.

Skriv ut flere valg på ett ark ved hjelp av VBA i Microsoft Excel | Velg flere områder og skriv ut hvert område i et annet ark ved hjelp av VBA.

Skriv ut alle arbeidsbøkene i en mappe ved hjelp av VBA i Microsoft Excel | Bruk denne VBA -koden til å skrive ut og lagre hver Excel -arbeidsbok i en mappe med.

Populære artikler:

Del Excel -ark i flere filer basert på kolonne ved hjelp av VBA | Denne VBA -koden deler excel -arkbase på unike verdier i en spesifisert kolonne. Last ned arbeidsfilen.

Slå av advarselsmeldinger ved hjelp av VBA i Microsoft Excel 2016 | For å slå av advarsler som avbryter den kjørende VBA -koden, bruker vi applikasjonsklassen.

Legg til og lagre ny arbeidsbok ved hjelp av VBA i Microsoft Excel 2016 | For å legge til og lagre arbeidsbøker ved hjelp av VBA bruker vi Workbooks -klassen. Workbooks.Add legger til ny arbeidsbok enkelt, men …