Išsaugokite „Excel“ diapazoną kaip PDF naudodami VBA

Turinys:

Anonim

Norėdami išsaugoti pasirinktą diapazoną „Excel“ (tarkime kvitą) kaip PDF „Excel“ naudodami VBA, naudokite žemiau esančią sintaksę.

Bendrasis kodas

Sub SaveRangeAsPDF () diapazonas.ExportAsFixedFormat tipas: = xlTypePDF, Failo pavadinimas:= _ "C: \ Users \ file_name", Kokybė: = xlQualityStandard, _ IncludeDocProperties: = Tiesa, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub 

Aukščiau pateiktas kodas yra bendras kodas, skirtas išsaugoti fiksuotą diapazoną kaip PDF dokumentą. Kai įrašysite makrokomandą eksportuodami „Excel“ į PDF, bus rodomas panašus kodas.

Diapazonas:Tai gali būti fiksuotas diapazonas, dinaminis diapazonas arba pasirinkimas. Jūs turite tai apibrėžti.

Failo pavadinimas: Tai visiškai kvalifikuotas pdf pavadinimas. Apibrėžkite jį kaip eilutę.

Likusius kintamuosius galima palikti tokius, kokie yra. Aš juos paaiškinau po pavyzdžio.

Pavyzdys: atspausdinkite „Excel“ kvitą kaip PDF naudodami VBA

Tarkime, jūs turite reguliariai spausdinti ir siųsti kvitus „Excel“. Tokiu atveju norėtumėte, kad jis būtų automatizuotas. Jūs nenorėtumėte vėl ir vėl eksportuoti „Excel“ į pdf. Jei galėtumėte tai padaryti tik mygtuku, tai būtų naudinga, ar ne?

Čia aš sukūriau šį kvito formatą. Noriu jį atspausdinti/išsaugoti/eksportuoti kaip pdf, naudodami mygtuką „Sukurti PDF“.

Šis kvitas apima diapazoną „A2: L21“. Aš jau nustatiau spausdinimo sritį.

Norėdami sutaupyti šio „Excel“ asortimento kaip PDF, naudosime aukščiau nurodytą bendrąjį „Excel“ lapo eksportavimo į pdf failą VBA. Mes pakoreguosime kodą pagal savo reikalavimus.

Sub PrintSelectionToPDF () Dim billiceRng kaip diapazonas Dim pdfile kaip String 'Spausdinimo nustatymo diapazonas Nustatykite invoiceRng = Diapazonas ("A1: L21") "nustatymo failo pavadinimą su laiko žyma. pdfile = "sąskaita faktūra" & "_" & formatas (dabar (), "yyyymmdd_hhmmss") & ".pdf" 'nustatant pilną kvalifikuotą pavadinimą. Gautas pdf bus išsaugotas ten, kur yra pagrindinis failas. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Failo pavadinimas: = pdfile, _ Kokybė: = xlQualityStandard, _ IncludeDocProperties: = Tiesa, _ IgnorePrintAreas: = False, _ OpenAalse End Subub: 

Naudojant kodą:

Nukopijuokite aukščiau esantį kodą į kvitų failą, atidarę VBA redaktorių (naudokite Alt+F11). Koreguokite diapazoną ir failo kelią (jei norite) kodu, kurį norite spausdinti. Žemiau galite atsisiųsti darbo failą.

Išsaugokite „Excel“ diapazoną kaip PDF naudodami VBA

Paaiškinimas:

Sąskaitos faktūros pritemdymas kaip diapazonas Dim PDFile kaip eilutė 

Kodas yra paprastas. Pirma, mes sukūrėme du kintamuosius. „InvoiceRng as Range“ diapazonui/lapui, kurį norime išsaugoti kaip pdf. strFile, kad gautumėte visiškai kvalifikuotą PDF failo pavadinimą.

Nustatyti invoiceRng = Diapazonas („A1: L21“) 

Kadangi mūsų spausdinimo diapazonas yra fiksuotas, sąskaitų faktūrų diapazoną nustatome kaip diapazoną („A1: L21“).

pdfile = "sąskaita" & "_" & formatas (dabar (), "yyyymmdd_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile 

Pirmiau pateiktose dviejose eilutėse failą pirmiausia pavadiname laiko žyma, o tada pridedame prie pagrindinio failo kelio. Dėl to pdfile yra visiškai kvalifikuotas gauto pdf failo pavadinimas.

invoiceRng.ExportAsFixedFormat _ Tipas: = xlTypePDF, _ Failo pavadinimas: = pdfile, _ Kokybė: = xlQualityStandard, _ IncludeDocProperties: = Tiesa, _ IgnorePrintAreas: = Tiesa, _ OpenAfterPublish: = Netiesa 

Galiausiai, mes naudojame „Range“ klasės metodą „ExpoortAsFixedFormat“, kad atspausdintume apibrėžtą „Excel“ diapazoną kaip PDF. Tipą apibrėžiame kaip xlTypePDF. Kitas pasirinkimas yra „xlTypeXPS“, kuris išsaugos pasirinktą diapazoną kaip XPS failą.

Mes nustatome failo pavadinimą kaip pdfile, kuriame yra visiškai kvalifikuoto pdf failo pavadinimo eilutė. Čia galite parašyti koduotą tekstą arba pritaikyti jį pagal savo poreikius.

Toliau nustatome pdf failo kokybę kaip xlQualityStandard. Turime kitą pasirinkimą kaip „xlQualityMinimum“.

Tada mes nustatėme „IncludeDocProperties“ kaip „True“. Tai reiškia, kad gautas PDF turės dokumento savybes.

Tada mes nustatėme IgnorePrintAreas kaip True. Tai reiškia, kad jis ignoruos visas jau nustatytas spausdinimo sritis.

Galiausiai „OpenAfterPublish“ nustatome kaip klaidingą. Tai reiškia, kad sukurtas failas nebus atidarytas automatiškai. Aš jį nustatiau klaidingai, nes sukuriu 100 failų naudodami kilpą ir nenoriu, kad jie būtų atidaryti. Jei norite atidaryti failą sukūrę naudodami „Excel“, nustatykite jį „True“.

Pasirinkto diapazono spausdinimas kaip pdf

Vienas iš pagrindinių naudojimo būdų yra spausdinti pasirinktą diapazoną tiesiog spustelėjus vieną mygtuką. Tačiau geriausia jį naudoti cikle, kur reikia sukurti kelis kvitus skirtingiems klientams. Sukurkite antrinį duomenų užpildymo elementą ir naudokite šį kodą pasirinktam diapazonui spausdinti.

Taigi taip, vaikinai, taip galite išsaugoti pasirinktą diapazoną kaip pdf. Tikiuosi, kad tai jums buvo naudinga. Jei vis dar turite kokių nors abejonių ar klausimų dėl spausdinimo „Excel“ naudojant VBA, paklauskite žemiau esančiame komentarų skyriuje.

Spausdinkite kelis pasirinkimus viename lape naudodami VBA programoje „Microsoft Excel“ | Pasirinkite kelis diapazonus ir spausdinkite kiekvieną diapazoną kitame lape naudodami VBA.

Spausdinkite visas darbaknyges aplanke naudodami VBA programoje „Microsoft Excel“ | Naudokite šį VBA kodą, kad išspausdintumėte ir išsaugotumėte kiekvieną „Excel“ darbaknygę aplanke naudodami.

Populiarūs straipsniai:

Padalinkite „Excel“ lapą į kelis failus pagal stulpelį naudodami VBA | Šis VBA kodas padalija „Excel“ lapą pagal unikalias reikšmes nurodytame stulpelyje. Atsisiųskite darbo failą.

Išjunkite įspėjamuosius pranešimus naudodami VBA programoje „Microsoft Excel 2016“ | Norėdami išjungti įspėjamuosius pranešimus, kurie nutraukia veikiantį VBA kodą, naudojame taikymo klasę.

Pridėkite ir išsaugokite naują darbaknygę naudodami „Microsoft Excel 2016“ VBA | Norėdami pridėti ir išsaugoti darbaknyges naudodami VBA, naudojame darbo knygų klasę. Workbooks.Add lengvai prideda naują darbaknygę, tačiau…