Чтобы сохранить выбранный диапазон в Excel (например, квитанцию) в формате PDF в Excel с использованием VBA, используйте синтаксис ниже.

Общий код

Sub SaveRangeAsPDF()

Range.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\file_name", Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Приведенный выше код представляет собой общий код для сохранения фиксированного диапазона в виде документа PDF. Когда ваш макрос записи при экспорте Excel в PDF, появится похожий код.

Диапазон: * Это может быть фиксированный диапазон, динамический диапазон или выбор. Вам нужно определить это.

Имя файла: это полное имя PDF-файла. Определите его как строку.

Остальные переменные можно оставить как есть. Я объяснил их на примере.

Пример: распечатать квитанцию ​​Excel как PDF с помощью VBA Допустим, вам нужно регулярно распечатывать и отправлять квитанции в Excel. В этом случае вы хотели бы автоматизировать его. Вы бы не захотели делать экспорт Excel в PDF снова и снова. Если бы вы могли просто использовать для этого кнопку, это было бы полезно, не так ли?

Я разработал этот формат квитанции. Я хочу распечатать / сохранить / экспортировать его как pdf с помощью кнопки «Создать PDF».

imageThis receipt covers the range «A2:L21». I have already set the print area.

image

Чтобы сэкономить на этом диапазоне Excel как PDF, мы будем использовать вышеупомянутый общий код VBA для экспорта листа Excel в pdf. Мы скорректируем код в соответствии с нашими требованиями.

Sub PrintSelectionToPDF()

Dim invoiceRng As Range

Dim pdfile As String

'Setting range to be printed

Set invoiceRng = Range("A1:L21")

'setting file name with a time stamp.

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

'setting the fulli qualified name. The resultent pdf will be saved where the main file exists.

pdfile = ThisWorkbook.Path & strfile

invoiceRng.ExportAsFixedFormat Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=False, _

OpenAfterPublish:=False

End Sub

Использование кода:

Скопируйте приведенный выше код в файл квитанции, открыв редактор VBA (используйте Alt + F11). Измените диапазон и путь к файлу (если хотите) в коде, который вы хотите напечатать. Вы можете скачать рабочий файл ниже.

`ссылка: /wp-content-uploads-2019-12-Save-Excel-Range-as-PDF-using-VBA.xls [

image 48Save Excel Range as PDF using VBA]

Пояснение:

Dim invoiceRng As Range

Dim pdfile As String

Код простой. Сначала мы создали две переменные. «InvoiceRng as Range» для диапазона / листа, который мы хотим сохранить как pdf. strFile для полного имени файла результирующего PDF-файла.

Set invoiceRng = Range("A1:L21")

Поскольку наш диапазон печати фиксирован, мы устанавливаем диапазон счета как Диапазон («A1: L21»).

pdfile = "invoice" & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

pdfile = ThisWorkbook.Path & strfile

В двух приведенных выше строках мы сначала называем файл меткой времени, а затем добавляем к пути к основному файлу. В результате pdfile содержит полное имя результирующего файла pdf.

invoiceRng.ExportAsFixedFormat _

Type:=xlTypePDF, _

Filename:= pdfile, _

Quality:= xlQualityStandard, _

IncludeDocProperties:=True, _

IgnorePrintAreas:=True, _

OpenAfterPublish:=False

Наконец, мы используем метод ExpoortAsFixedFormat класса Range для печати определенного диапазона Excel как PDF. Мы определяем тип как xlTypePDF. Другой вариант — xlTypeXPS, который сохранит выбранный диапазон как файл XPS.

Мы устанавливаем имя файла как pdfile, которое содержит строку полного имени файла pdf. Вы можете написать здесь жестко запрограммированный текст или настроить его по своему усмотрению.

Затем мы устанавливаем качество PDF-файла как xlQualityStandard. У нас есть другой вариант — xlQualityMinimum.

Затем мы устанавливаем для IncludeDocProperties значение True. Это означает, что полученный PDF-файл будет иметь свойства документа.

Затем мы устанавливаем IgnorePrintAreas как True. Это означает, что он проигнорирует любую уже установленную область печати.

Наконец, мы устанавливаем OpenAfterPublish как False. Это означает, что созданный вами файл не откроется автоматически. Я установил значение false, потому что я создаю сотни файлов с помощью цикла, и я не хочу, чтобы они открывались. Если вы хотите открыть файл после создания с помощью excel, установите для него значение True.

Использование печати выбранного диапазона в формате pdf

Одно из основных применений — распечатать выбранный диапазон, просто щелкнув одну кнопку. Но лучше всего использовать его в цикле, когда вам нужно создать несколько чеков для разных клиентов. Создайте подпрограмму для заполнения данных, а затем используйте этот код для печати выбранного диапазона в цикле.

Так что да, ребята, вот как вы можете сохранить выбранный диапазон в формате PDF. Надеюсь, это было вам полезно. Если у вас все еще есть сомнения или вопросы относительно печати в Excel с использованием VBA, задайте их в разделе комментариев ниже.

Статьи по теме:

link: / Printing-in-vba-print-all-workbooks-in-a-folder-using-vba-in-microsoft-excel [Распечатать все книги в папке с помощью VBA в Microsoft Excel] | Используйте этот код VBA для печати и сохранения каждой книги Excel в папке с использованием.

Популярные статьи:

link: / general-themes-in-vba-split-excel-sheet-into-multiple-files-based-on-column-using-vba [Разделить лист Excel на несколько файлов на основе столбца с помощью VBA] | Этот код VBA разбивает таблицу Excel на основе уникальных значений в указанном столбце.

Скачайте рабочий файл.

link: / general-themes-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Отключить предупреждающие сообщения с помощью VBA в Microsoft Excel 2016] | Чтобы отключить предупреждающие сообщения, которые прерывают выполнение кода VBA, мы используем класс Application.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Добавить и сохранить новую книгу с помощью VBA в Microsoft Excel 2016] | Для добавления и сохранения книг с помощью VBA мы используем класс Workbooks. Workbooks.Add легко добавляет новую книгу …​