【问题标题】:How can I export from Excel per workbook and page as PDF如何从 Excel 中将每个工作簿和页面导出为 PDF
【发布时间】:2021-03-26 10:14:00
【问题描述】:

我有一个需要保存为 PDF 的大型 Excel 文件。在每个工作簿中,我有 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 & Application.PathSeparator & sh.Name & ".pdf"
Next

MsgBox "Done"

End Sub

【问题讨论】:

    标签: excel vba pdf


    【解决方案1】:

    ExportAsFixedFormat 具有指定起始页和结束页的参数。现在您所需要的只是计算出预期的页数。这可以使用工作表的HPageBreaks.CountVPageBreaks.Count-property 来完成- 请记住,您必须在这些参数上加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 & Application.PathSeparator & sh.Name & "_p" & page & ".pdf", from:=page, to:=page
        Next
    Next
    

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 2010-09-18
      • 2019-10-18
      • 1970-01-01
      相关资源
      最近更新 更多