#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