Excel VBA за отпечатване като PDF и запазване с автоматично име на файла

  • Споделя Това
Hugh West

Износът на данни има своите предимства. Excel електронна таблица като PDF документ. Като променим файла в PDF формат, ще можем да го отпечатаме и споделим с различни професионални връзки. PDF файловете са надежден стандарт за експортиране на документи, които изпитвате необходимост да споделите с други хора или да популяризирате. В тази статия ще демонстрираме няколко примера на VBA за отпечатване като PDF и запазване с автоматично име на файла.

Изтегляне на работна тетрадка за практика

Можете да изтеглите работната тетрадка и да се упражнявате с тях.

VBA Отпечатване в PDF.xlsm

9 примера за Excel VBA за отпечатване като PDF и запазване с автоматично име на файла в Excel

Можем лесно да отпечатаме файл на Excel като PDF и да запишем файла с автоматично име, като използваме лентата с инструменти на Excel. Но би било по-лесно с Excel VBA . Просто се нуждаем от VBA код и да ги стартирате. Не са необходими толкова много кликвания за изпълнение на задачата и това спестява времето ни.

Visual Basic за приложения ( VBA ) е модел за програмиране и изолирана програма, която най-често се среща в Microsoft Office Това е аналитичен инструмент, който често се предлага като Добавки за Excel , която оптимизира ръчните операции, като например монотонни, отнемащи време задължения. тя също така може да генерира CSV Така че нека да видим няколко примера за отпечатване на файл на Excel като PDF с автоматично име на файла.

1. Отпечатване на работната книга в PDF & Запазване на името на файла автоматично в Excel

Да предположим, че искаме да отпечатаме цялата работна книга и да запазим името на файла, както сме го поставили в кода. Сега да предположим, че искаме да запазим PDF файл на нашия компютър Местен диск (E:) . Както можем да видим на снимката по-долу, местоположението не съдържа никакви pdf файлове. След като стартираме кода VBA, ще можем да видим желания от нас PDF на това място в компютъра ни.

С Excel VBA , потребителите могат лесно да използват кода, който действа като менюта на Excel от лентата. за да използвате VBA код за отпечатване на pdf и запазване с автоматично име на файла, нека следваме процедурата.

СТЪПКИ:

  • Първо, отидете в Разработчик от лентата.
  • Второ, от Код категория, щракнете върху Visual Basic за да отворите Редактор на Visual Basic . Или натиснете Alt + F11 за да отворите Редактор на Visual Basic .

  • Вместо да правите това, можете просто да щракнете с десния бутон на мишката върху работния лист и да отидете на Вижте кода . Това ще ви отведе и до Редактор на Visual Basic .

  • Това ще се появи в Редактор на Visual Basic където записваме кодовете си за създаване на таблица от диапазон.
  • Трето, щракнете върху Модул от Вмъкване на падащо меню.

  • Това ще създаде Модул във вашата работна книга.
  • И копирайте и поставете VBA код, показан по-долу.

Код VBA:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Изпълнете кода, като натиснете бутона F5 на клавиатурата.

  • Накрая можете да видите, че името на PDF файла, Работна тетрадка сега се намира на този път на вашия компютър. Това означава, че името на файла се запазва автоматично.

  • И накрая, ако се върнете в работната си книга, можете да видите няколко прекъснати линии. Това е така, защото файлът вече е готов за печат.

Обяснение на кода VBA

 Sub Print_Workbook() 

Под е част от кода, която се използва за обработка на работата в кода, но няма да върне никаква стойност. Известна е също като подпроцедура. Така че наричаме нашата процедура Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Този ред е за местоположението и името на pdf файла. Тук записваме нашия файл в E: на нашия компютър и дайте име на файла Работна тетрадка .

 ActiveWorkbook.ExportAsFixedFormat Тип:=xlTypePDF, име на файла:=loc 

Този ред от кода е предназначен за експортиране на файла Excel като PDF и за подготовката му за печат.

 Край на Sub 

Това ще доведе до приключване на процедурата.

Прочетете още: Експортиране на Excel в PDF с хипервръзки (2 бързи метода)

2. Автоматично запазване на активен работен лист като PDF

Нека видим друг пример за отпечатване на активен лист в pdf и автоматично запазване на името на файла с помощта на Excel VBA .

СТЪПКИ:

  • Първо, отидете в Разработване на r от лентата.
  • Второ, щракнете върху Visual Basic за да отворите Редактор на Visual Basic .
  • Друг начин за отваряне на Редактор на Visual Basic е просто да натиснете Alt + F11 .
  • Или щракнете с десния бутон на мишката върху листа, след което изберете Вижте кода .
  • След това отидете в Вмъкване на и изберете Модул от падащото меню.
  • Това ще отвори прозореца на Visual Basic.
  • След това копирайте и поставете Код VBA по-долу.

Код VBA:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Освен това натиснете бутона Клавиш F5 или кликнете върху Изпълнявайте функцията Run Sub за да стартирате кода.

  • Подобно на предишния пример, файлът се записва като PDF файл с автоматично име.

Ако четете example1's код, ще разберете и това.

Прочетете още: Макрос на Excel: Записване като PDF с дата в името на файла (4 подходящи примера)

3. Отпечатване на PDF файл от Excel с VBA в диапазон

Нека разгледаме друг пример за използване на Excel VBA за отпечатване на активен лист в pdf и автоматично запазване на името на файла.

СТЪПКИ:

  • За да започнете, щракнете върху Разработчик в лентата.
  • Второ, стартирайте Редактор на Visual Basic като кликнете върху Visual Basic .
  • Като алтернатива можете да получите достъп до Редактор на Visual Basic като натиснете Alt + F11 .
  • Или, щракване с десния бутон на мишката върху на листа и изберете Вижте кода от менюто.
  • След това изберете Модул от падащото поле под Вмъкване на .
  • Ще се появи прозорецът на Visual Basic.
  • Напишете кода там.

Код VBA:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Накрая натиснете бутона Клавиш F5 за да стартирате кода.

  • След това можете да видите, че на това място в компютъра ви е добавен PDF файл с името Workbook (Работна книга). В резултат на това името на файла се запазва автоматично.

Прочетете още: Отпечатване на диапазона в PDF с VBA в Excel (5 най-лесни примера)

4. Excel VBA за създаване на цикъл в избран лист и отпечатване на PDF

Нека разгледаме друг начин за отпечатване в PDF и автоматично запазване на името на файла.

СТЪПКИ:

  • За да започнете, отворете лентата и изберете Разработчик опция.
  • След това, за да получите достъп до Редактор на Visual Basic , кликнете върху Visual Basic .
  • Натискане на Alt + F11 също ще изведе Редактор на Visual Basic .
  • Алтернативно, щракване с десния бутон на мишката върху на листа и изберете Вижте кода от появилото се меню.
  • Сега, от Вмъкване на падаща опция, изберете Модул .
  • След това копирайте и поставете VBA код, който следва.

Код VBA:

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Изпълнете кода, като натиснете бутона F5 ключ.

  • В крайна сметка можете да видите, че в тази област на компютъра ви е качен PDF файл на работната книга. Вследствие на това името на файла се запазва автоматично.

Това ще запише файла като номер на листа на работната книга.

Обяснение на кода VBA

 За всеки wrksht в sht wrksht.Select wrksht.ExportAsFixedFormat Тип:=xlTypePDF, име на файла:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Следващ wrksht 

Този ред от кодове на цикъла for е за експортиране на файла Excel като pdf и отпечатване на файла.

Прочетете още: Excel VBA: ExportAsFixedFormat PDF с Fit to Page (3 примера)

5. Отпечатване в PDF и запазване на името на файла инстинктивно в Excel

Сега разгледайте друг метод на Excel VBA за запазване на файлове на Excel в pdf и дайте име на файла автоматична система.

СТЪПКИ:

  • За да започнете, отворете лентата и изберете Разработчик от падащото меню.
  • След това изберете Visual Basic за да отворите Редактор на Visual Basic .
  • Сайтът Редактор на Visual Basic можете да получите достъп и чрез натискане на Alt + F11 .
  • Като алтернатива можете да щракване с десния бутон на мишката върху на листа и изберете Вижте кода от изскачащото меню.
  • След това изберете Модул от Вмъкване на падащо меню.
  • След това копирайте и поставете следния код VBA.

Код VBA:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Накрая стартирайте кода, като натиснете F5 на клавиатурата и ще видите резултата.

  • Впоследствие ще видите, че Работна тетрадка PDF Файлът вече е бил запазен на това място на вашия компютър. В резултат на това името на файла се запазва автоматично.

По същия начин, както в предишния пример, това също ще запази pdf файла като номер на листа.

Обяснение на кода VBA

 ActiveSheet.ExportAsFixedFormat Тип:=xlTypePDF, име на файла:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Блокът с код е за отпечатване и запазване на файла Excel като pdf.

Прочетете още: Отпечатване в PDF и електронна поща с помощта на VBA в Excel (2 полезни случая)

6. Функция VBA за автоматично отпечатване на PDF и запазване на името на файла

Нека да разгледаме друг начин на Excel VBA за автоматично отпечатване в PDF и запазване на името на файла. В този пример ще използваме функция и ще запазим файла в PDF. Използваме също така Msgbox да ни даде съобщение дали файлът е запазен или не.

СТЪПКИ:

  • В началото отидете в Разработчик tab> Visual Basic > Вмъкване на > Модул .
  • Или, щракване с десния бутон на мишката върху върху работния лист ще се отвори прозорец. Оттам отидете в Вижте кода .
  • И това ще ви отведе до Редактор на Visual Basic поле, където можем да напишем Макроси VBA .
  • От друга страна, натискането на Alt + F11 също така ще отворите Редактор на Visual Basic .
  • След това въведете VBA код.

Код VBA:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc &; "\" snam = wrks.Range("A1").Value & " Print " &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) Край на функцията 
  • И стартирайте кода, за да видите резултата, като натиснете бутона Клавиш F5 .

  • Това ще се появи в Msgbox и се уверете, че PDF файлът вече е готов за печат.

  • По същия начин, както и преди, ще забележите, че PDF файлът на работната книга вече е бил запазен на това място на компютъра ви. В резултат на това името на файла е запазено по подразбиране. Тъй като задаваме името на файла Отпечатване на PDF , той запазва името на файла Отпечатване PDF.

Ако погледнете обяснението на предишния код, ще разберете правилно редовете на кода. Не е необходимо да променяте кода, просто променете диапазоните според предпочитанията си. Можете да копирате кода и да го използвате за работните си цели.

Прочетете още: Макрос на Excel за запазване като PDF с име на файл от стойността на клетката (2 примера)

7. Excel VBA код за отпечатване в PDF и автоматично запазване на името на файла

Нека разгледаме друг метод на Excel VBA за отпечатване в PDF и автоматично запазване на името на файла.

СТЪПКИ:

  • За да започнете, отидете в Разработчик в лентата.
  • Второ, в раздел Код изберете Visual Basic за да стартирате Редактор на Visual Basic . За да отворите Редактор на Visual Basic , щракнете върху Alt + F11 .
  • Можете също така да щракнете с десния бутон на мишката върху работния лист и да изберете Вижте кода . Това ще ви отведе до Редактор на Visual Basic също така.
  • Това ще се покаже в Редактор на Visual Basic , където ще напишем кода за генериране на таблица от даден диапазон.
  • Трето, от падащото меню Insert изберете Модул .
  • И копирайте и поставете VBA код, показан по-долу.

Код VBA:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = slocamp &; "\" snam = wrksht.Range("A1").Value & " - " &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler Край на Sub 
  • След това изпълнете кода, като щракнете върху RubSub или натискане на бутона F5 бърза клавишна комбинация.

  • Особено в този случай Msgbox ще се появи.

  • Файлът се записва като PDF файл със същото автоматизирано име като в предишния пример.

Обяснение на кода VBA

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Те са за получаване на активната папка на работната книга, ако работната книга е запазена.

 sf = snam & ".pdf" slocf = sloc & sf 

Това ще създаде име по подразбиране за запазване на файлове.

 wrksht.ExportAsFixedFormat Тип:=xlTypePDF, име на файла:=slocf, Качество:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Този блок просто експортира файла Excel в PDF в текущата папка.

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

Това ще ни позволи да видим съобщение за потвърждение с информация за файла в Microsoft Excel.

Прочетете още: Отпечатване в PDF с помощта на бутон за макроси в Excel (5 варианта на макроси)

8. Отпечатване на конкретен лист от Excel с автоматично име на файла

Нека разгледаме друг метод на Excel VBA за отпечатване в PDF и автоматично запазване на името на файла.

СТЪПКИ:

  • На първо място, изберете Разработчик от лентата.
  • Второ, съгласно Код изберете категория Visual Basic за да стартирате Редактор на Visual Basic . Алтернативно натиснете Alt + F11 за да стартирате Редактор на Visual Basic .
  • Вместо това щракнете с десния бутон на мишката върху работния лист и изберете Вижте кода .
  • Това ще се покаже в Редактор на Visual Basic , където ще напишем кода си за генериране на таблица от диапазон.
  • Трето, изберете Модул от падащото меню Вмъкване.
  • Освен това копирайте и поставете Код VBA по-долу.

Код VBA:

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Освен това стартирайте кода, като щракнете върху RubSub или като използвате бутона F5 бърза клавишна комбинация.

  • Този файл се записва като PDF файл със същото име като в предишния пример.

Обяснение на кода VBA

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Тези блокове от кодовете са предназначени за създаване и присвояване на променливи.

 rng.ExportAsFixedFormat Тип:=xlTypePDF, _ име на файла:=loc 

Това ще запази набор от данни от файла като PDF.

Прочетете още: Как да конвертирате Excel в PDF, без да губите форматиране (5 ефективни начина)

9. Запазване на името на файла по автоматичен начин при отпечатване в PDF в Excel VBA

Нека разгледаме друг метод на Excel VBA за отпечатване в PDF и автоматично запазване на името на файла.

СТЪПКИ:

  • За начало изберете Разработчик от лентата.
  • Второ, изберете Visual Basic от Код да отворите областта Редактор на Visual Basic . кликнете Alt + F11 за да стартирате Редактор на Visual Basic .
  • Можете също така да щракнете с десния бутон на мишката върху работния лист и да изберете Вижте кода . Това ще ви отведе и до Редактор на Visual Basic .
  • Сега можем да видим Редактор на Visual Basic , където ще напишем кода за създаване на таблица от диапазон.
  • Освен това изберете Модул от Вмъкване на падащо меню.
  • След това копирайте и поставете VBA код, който следва.

Код VBA:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Копира листове в нов PDF файл за изпращане по електронна поща Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Преглед на .pdf документа."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • След това кодът ще се изпълни, като щракнете върху RubSub или като използвате бутона F5 бърза клавишна комбинация.

Обяснение на кода VBA

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" 

За получаване на файла като pdf и запазване на името на pdf.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Това е само настройка на качеството на печат.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Преглед на .pdf документа." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save asPDF." Automatioc_Name = False 

Тези редове ще инструктират потребителя как да изпрати файла, за да го отпечата като pdf.

Прочетете още: Как да запазите Excel като PDF, без да го отрязвате (4 подходящи начина)

Заключение

Горните методи ще ви помогнат да свършите тази работа от Отпечатване в PDF и запазване на автоматично име на файла в Excel VBA . Надявам се, че това ще ви помогне! Ако имате въпроси, предложения или обратна връзка, моля, съобщете ни в раздела за коментари. Или можете да хвърлите един поглед на другите ни статии в ExcelWIKI.com блог!

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.