Teisendage Excel PDF -failiks VBA abil - ainus juhend, mida vajate

Lang L: none (table-of-contents)

*See on kaasblogija ja hiilgava VBA arendaja Ryan Wellsi külalispostitus.*

Kui töötate Exceli abil, on teil kahtlemata palutud teha oma tööst kokkuvõtteid.

Müügiaruanded, arved, prognoosid, ajakavad, nimetage seda.

Kas teate, mis on kõigil neil dokumentidel ühist? Need näevad PDF -vormingus suurepärased välja. Tead mis veel? Juhtimine armastab PDF -e!

Teisendage Excel PDF -failiks

Selles õpetuses näitan teile, kuidas kasutada Exceli VBA -d igasuguste Exceli objektide teisendamiseks PDF -failideks:

Esitan igale makrole mõned kommentaarid. Nii saate need kiiresti üles leida, kopeerida VBA redaktorisse ja kasutada.

Kui käivitate mõne neist makrodest, ilmub dialoogiboks Salvesta nimega, kus küsitakse, kuhu soovite PDF -faili salvestada. Vaikenimi sisaldab kuupäeva ja ajatempli, kui tegite makro vormingus yyyymmdd_hhmmss.

Läheme asja juurde.

Siin on makrod:

Prindi valik PDF -failiks

See on minu isiklik lemmik. See makro teisendab aktiivselt valitud lahtrid PDF -failiks.

Kui teil on valitud ainult üks lahter, on VBA makro piisavalt nutikas, et mõista, et tõenäoliselt ei soovi te ainult ühte lahtrit teisendada, nii et see palub teil valida teisendatava vahemiku:

Sub PrintSelectionToPDF () 'SUBROUTINE: PrintSelectionToPDF' DEVELOPER: Ryan Wells 'KIRJELDUS: Printige oma valitud vahemik PDF -vormingus Dim ThisRng As Range Dim strfile String Dim myfile as Variant If Selection.Count = 1 Seejärel määrake ThisRng = Application.InputBox ( "Valige vahemik", "Hangi vahemik", tüüp: = 8) Muul viisil määrake seeRng = Valiku lõpp, kui 'Salvestuskoha küsimine strfile = "Valik" & "_" _ & Vorming (nüüd (), "yyyymmdd_hhmmss") _ & ".pdf" strfile = ThisWorkbook.Path & "\" & strfile myfile = Application.GetSaveAsFilename _ (InitialFileName: = strfile, _ FileFilter: = "PDF -failid ( *.pdf), *.pdf", _ Pealkiri: = "Valige kaust ja failinimi PDF -i salvestamiseks") Kui myfile "False", siis salvestage PDF -failina ThisRng.ExportAsFixedFormat Type: = xlTypePDF, Filename: = _ myfile, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintAreas: = Vale, OpenAfterPublish: = Tõsi Else MsgBox "Faili pole valitud. PDF -faili ei salvestata", vbOKOnly, "Faili pole valitud" Lõpp kui lõpp

Kui olete vahemiku valinud ja klõpsanud nuppu OK, kuvatakse dialoogiboks, kus saate valida, kuhu soovite PDF -faili salvestada.

See valib automaatselt süsteemi kellast kuupäeva ja kellaaja ning lisab selle failinimele.

Printige üks tabel PDF -i

Paljud Exceli energiatarbijad salvestavad oma andmed organiseeritud tabelitesse. Tegelikult meeldivad Sumit Bansalile endale Exceli tabelid nii palju, et ta nimetab neid Excelis peidetud aardeks.

See makro prindib PDF -i teie valitud tabeli. Makro käivitamisel küsib see salvestatava tabeli nime.

Sub PrintTableToPDF () 'SUBROUTINE: PrintTableToPDF' DEVELOPER: Ryan Wells 'KIRJELDUS: Printige enda valitud tabel PDF Dim strfile String Dim myfile Variant Dim strTable Stringina, r As Range Application.ScreenUpdating = False' Sisestage tabel nimi, mille soovite salvestada strTable = InputBox ("Mis on salvestatava tabeli nimi?", "Sisestage tabeli nimi") 'Tabel, mille soovite salvestada asukoht strfile = strTable & "_" _ & Format (Now (), "yyyymmdd_hhmmss") _ & ".pdf" strfile = ThisWorkbook.Path & "\" & strfile myfile = Application.GetSaveAsFilename _ (InitialFileName: = strfile, _ FileFilter: = "PDF -failid ( *.pdf), *.pdf", _ Pealkiri: = "Valige kaust ja failinimi, mida PDF -failina salvestada") Kui minu fail "Vale", siis salvestage PDF -vahemikuna (strTable) .ExportAsFixedFormat Type : = xlTypePDF, failinimi: = myfile, Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True Else MsgBox "Faili pole valitud. PDF ei ole salvestatud ", vbOKOnly," Faili pole valitud "Lõpeta, kui Application.DisplayAlerts = False LetsContinue: Rakendusega .ScreenUpdating = True .DisplayAlerts = Õige lõpp koos väljumisega Alamosa alam

Kui sisestate tabeli nime ja klõpsate nuppu OK, kuvatakse dialoogiboks, kus saate valida, kuhu soovite PDF -faili salvestada.

See valib automaatselt süsteemi kellast kuupäeva ja kellaaja ning lisab selle failinimele.

Printige kõik tabelid PDF -ide eraldamiseks

Kui teie arvutustabelis on mitu tabelit ja peate need igaüks eraldi PDF -i salvestama, saate selle VBA -koodi käivitada.

Selle makro käivitamisel ilmub dialoogiboks, kus palutakse teil valida kaust, kuhu soovite PDF -failid salvestada.

Kui olete oma kausta valinud, salvestab makro iga tabeli PDF -failiks, mille tabeli nimi on mugavalt PDF -i pealkirjas.

Sub PrintAllTablesToPDFs () 'SUBROUTINE: PrintAllTablesToPDFs' ARENDAJA: Ryan Wells 'KIRJELDUS: Printige iga tabel oma arvutustabelisse erinevasse PDF Dim strTables Variandina Dim tbl ListObject Dim sht töölehena koos Application.FileDialogiga (msoFileDialogFolderPicker) .Title = "Kuhu soovite oma PDF -i salvestada?" .ButtonName = "Salvesta siia" .InitialFileName = ThisWorkbook.Path Kui .Show = -1 Siis 'kui OK vajutatakse sfolder = .SelectedItems (1) Muu End End If End With For iga sht selles töövihikus. Töölehed iga tbl kohta sht .ListObjects myfile = ThisWorkbook.Name & ""& tbl.Nimi &""_ & Format (Now ()," yyyymmdd_hhmmss ") _ &" .pdf "myfile = sfolder &" \ "& myfile sht.Range (tbl.Name) .ExportAsFixedFormat Type: = xlTypePDF, Filename: = _ myfile, Quality : = xlQualityStandard, IncludeDocProperties: = Tõsi, _ IgnorePrintAreas: = False, OpenAfterPublish: = True Järgmine tbl Järgmine sht End Sub

Printige kõik lehed üheks PDF -failiks

Ma ei tea, kuidas teiega on, kuid minu töövaldkonnas peame säilitama peaaegu kõigi arvutustabelite PDF -koopiad. Lisame oma arvutuste arvutustele arvutustabelite PDF -koopiad. Need PDF-failid konverteeriti varem mikrofišideks ja võeti võlvile pikaajaliseks säilitamiseks. Tead, kui apokalüpsis juhtus.

Kui leiate end sarnasest olukorrast, on tore, kui saate kõik arvutustabeli lehed automaatselt üheks PDF -failiks teisendada. Siin on VBA makro, mis teeb just seda:

Sub PrintAllSheetsToPDF () 'SUBROUTINE: PrintAllSheetsToPDF' DEVELOPER: Ryan Wells 'KIRJELDUS: Kombineerige kõik oma töölehed üheks PDF Dim strSheets () String Dim strfile String Dim sh nagu tööleht Dim ikoon kui täisarv Dim diagramm Variandina' massiivile iga sh kohta ActiveWorkbookis. Töölehed Kui sh.Visible = xlSheetVisible Siis ReDim Säilita strSheets (icount) strSheets (icount) = sh.Name icount = icount + 1 End If Next sh If icount = 0 Siis 'Diagramme ei leitud. Punch error MsgBox "PDF -faili ei saa luua, kuna lehti ei leitud.", "Lehti ei leitud" Exit Sub end If If 'Prompt for save save strfile = "Sheets" & "_" _ & Format (Now (), " yyyymmdd_hhmmss ") _ &" .pdf "strfile = ThisWorkbook.Path &" \ "& strfile myfile = Application.GetSaveAsFilename _ (InitialFileName: = strfile, _ FileFilter: =" PDF -failid ( *.pdf), *.pdf ", _ Title: = "Valige PDF -failina salvestamiseks kaust ja failinimi") Kui minu fail "Vale", salvestage see PDF -vormingus ThisWorkbook.Sheets (strSheets). Valige ActiveSheet.ExportAsFixedFormat Type: = xlTypePDF, Filename: = _ myfile, Quality: = xlQualityStandard, IncludeDocProperties: = Tõsi, _ IgnorePrintAreas: = Vale, OpenAfterPublish: = Tõsi Muu MsgBox "Faili pole valitud. PDF -i ei salvestata", vbOKOnly, "Faili pole valitud" Lõpp kui lõpp

Printige diagrammilehed PDF -i

See makro teisendab kõik teie diagrammilehed üheks PDF -failiks, kuid mitte teie diagrammi objektid! Diagrammilehtede all pean silmas diagramme, millel on teie arvutustabeli vahekaartide loendis oma vahekaart:

Sub PrintChartSheetsToPDF () 'SUBROUTINE: PrintChartSheetsToPDF' DEVELOPER: Ryan Wells 'KIRJELDUS: Ühendage kõik diagrammilehed üheks PDF Dim strSheets () String Dim strfile String Dim ch nagu objekt, sh kui töölehe Dim ikoon täisarvuna Salvestage diagrammilehtede nimed massiivi igaks aktiivseks töövihikuks. Diagrammid ReDim Säilitage strSheets (icount) strSheets (icount) = ch.Name icount = icount + 1 Järgmine ch If icount = 0 Siis 'Diagramme ei leitud. Punch error MsgBox "PDF -faili ei saa luua, kuna diagrammilehti ei leitud.", "Diagrammilehti ei leitud" Exit Sub end If If 'Prompt for save save strfile = "Charts" & "_" _ & Format (Now () , "yyyymmdd_hhmmss") _ & ".pdf" strfile = ThisWorkbook.Path & "\" & strfile myfile = Application.GetSaveAsFilename _ (InitialFileName: = strfile, _ FileFilter: = "PDF -failid ( *.pdf), *.pdf ", _ Title: =" Valige PDF -failina salvestamiseks kaust ja failinimi ") Kui minu fail" Vale ", salvestage see PDF -vormingus ThisWorkbook.Sheets (strSheets). Valige ActiveSheet.ExportAsFixedFormat Type: = xlTypePDF, Filename: = _ myfile, Kvaliteet: = xlQualityStandard, IncludeDocProperties: = Tõsi, _ IgnorePrintAreas: = False, OpenAfterPublish: = True Else MsgBox "Faili pole valitud. PDF -i ei salvestata", vbOKOnly, "Faili pole valitud" Lõpp kui lõpp

Printige diagrammi objektid PDF -failiks

See makro salvestab kõik tavalised diagrammid - diagrammi objektid - üheks PDF -failiks. Sõltumata sellest, millisel töölehel teie diagramm asub, haaratakse see ja salvestatakse PDF -faili.

Lõplikus PDF -is on lehel ainult üks diagramm.

Sub PrintChartsObjectsToPDF () 'SUBROUTINE: PrintChartsObjectsToPDF' DEVELOPER: Ryan Wells 'KIRJELDUS: Ühendage kõik diagrammi objektid üheks PDF Dim ws tööleheks, wsTemp As Workheet Dim chrt As ChartObject Dim tp As Long Dim strfile As String Dimf = False Set wsTemp = Sheets.Add tp = 10 WsTemp iga ws ActiveWorkbookis. Töölehed Kui ws.Name = wsTemp.Name Siis GoTo nextws: Iga chrt kohta ws.ChartObjects chrt.Copy wsTemp.Range ("A1") .PasteSpecial Selection.Top = tp Selection.Left = 5 If Selection.TopLeftCell.Row> 1 Seejärel ActiveSheet.Rows (Selection.TopLeftCell.Row) .PageBreak = xlPageBreakManual End Kui tp = tp + Selection.Height + 50 Next next: Järgmine ws lõpeb 'Salvestamiskoha küsimisega strfile = "Charts" & "_" _ & Format (Now (), "yyyymmdd \ _hhmmss") _ & ".pdf" strfile = ActiveWorkbook.Path & "\" & strfile myfile = Application.GetSaveAsFilename _ (InitialFileName: = strfile, _ FileFilter: = "PDF -failid ( *.pdf), *.pdf", _ Title: = "Vali Fol der ja failinimi PDF -failina salvestamiseks ") Kui myfile False, siis salvestage PDF -vormingus wsTemp.ExportAsFixedFormat Type: = xlTypePDF, Filename: = myfile, Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfter Tõsi "Muu" MsgBox "Faili pole valitud. PDF -i ei salvestata ", vbOKOnly," Faili pole valitud "Lõpeta, kui Application.DisplayAlerts = False wsTemp.Delete With Application .ScreenUpdating = True .DisplayAlerts = True End Exit Sub End End Sub

Kui teil on küsimusi, jätke need kommentaaride sektsiooni, kus me Ryaniga teid seal ootame.

Samuti võivad teile meeldida järgmised Exceli õpetused:

  • Kuidas manustada PDF -faili Exceli töölehele.
  • Exceli VBA silmused: järgmiseks tehke aega, tehke kuni, igaühe jaoks (näidetega).
  • Kuidas Excelis makro salvestada
  • Kuidas ühendada mitu töövihikut üheks Exceli töövihikuks.
  • Kuidas Excelis makro käivitada.
  • Exceli lisandmooduli loomine ja kasutamine
  • Exceli VBA vigade käsitlemine
  • Jagage iga Exceli leht eraldi failideks
  • XML -faili Excelisse importimine Teisendage XML Exceliks

Autori kohta: Ryan Wells on tuumainsener ja professionaalne VBA arendaja. Ta avaldab oma hõlpsasti mõistetavad Exceli VBA õpetused, et aidata teistel paremaid makrosid kirjutada. Lisaks VBA õpetamisele on Ryan mitme Exceli lisandmooduli juhtivarendaja. Tema õpetused leiate veebisaidilt WellsR.com.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave