Как я могу экспортировать из Excel каждую книгу и страницу в формате PDF

#excel #vba #pdf

Вопрос:

У меня есть большой файл Excel, который нужно сохранить в формате PDF. В каждой книге у меня есть 25 страниц, которые мне нужно сохранить в формате pdf.

Пример: Рабочая книга (x1) содержит страницы (25). Теперь мне нужно создать PDF-файл для каждой страницы.

Для этого я скопировал код в VBA, который создает PDF-файл для каждой книги (к сожалению, не для каждой страницы отдельно).

Код VBA:

 Option Explicit

Sub ExportAsPDF()

Dim Folder_Path As String

With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select Folder path"
If .Show = -1 Then Folder_Path = .SelectedItems(1)
End With

If Folder_Path = "" Then Exit Sub

Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
sh.ExportAsFixedFormat xlTypePDF, Folder_Path amp; Application.PathSeparator amp; sh.Name amp; ".pdf"
Next

MsgBox "Done"

End Sub
 

Ответ №1:

ExportAsFixedFormat имеет параметр для указания страницы » от » и «до». Теперь все, что вам нужно, — это определить количество ожидаемых страниц. Это можно сделать с помощью свойства HPageBreaks.Count и VPageBreaks.Count листа-просто имейте в виду, что вы должны добавить 1 к этим параметрам (например, если лист имеет 2 горизонтальных разрыва, это приведет к 3 страницам).

Используя это, вы просто экспортируете в цикле. Не забудьте добавить суффикс, чтобы каждая страница получала уникальное имя файла.

 For Each sh In ActiveWorkbook.Worksheets
    Dim pageCount As Long, page As Long
    pageCount = (sh.HPageBreaks.Count   1) * (sh.VPageBreaks.Count   1)
    
    For page = 1 To pageCount
        sh.ExportAsFixedFormat xlTypePDF, Folder_Path amp; Application.PathSeparator amp; sh.Name amp; "_p" amp; page amp; ".pdf", from:=page, to:=page
    Next
Next