【问题标题】:Export Worksheet to PDF on different pages在不同页面上将工作表导出为 PDF
【发布时间】:2021-10-31 01:25:45
【问题描述】:

我想在 PDF 文档中保护区域 A1 到 BJ10。由于这个区域相当宽,我想将这些部分分成三页。 A1:R10、S1:BB10 和 BC1:BJ10。

我当前的代码是:

Sub ToPDF()
    
    Sheets(1).PageSetup.Orientation = 2
    
    Sheets(1).PageSetup.Zoom = False
    Sheets(1).PageSetup.FitToPagesWide = 1
    
    Sheets(1).Range("A1:BJ10").ExportAsFixedFormat xlTypePDF, Filename:=Path, Openafterpublish:=True
End Sub

我怎样才能将提到的区域保存为 PDF,其中该区域的每个部分都有自己的页面? 谢谢!

【问题讨论】:

    标签: excel vba pdf export area


    【解决方案1】:

    一种方法是将范围复制到临时工作簿,然后每个工作表都是一个单独的页面。

    Option Explicit
    
    Sub ToPDF()
    
        Dim wb As Workbook, ws As Worksheet
        Dim wbTemp As Workbook, wsTemp As Worksheet
        Dim ar, i As Long, sFilename As String
    
        ' ranges
        ar = Array("A1:R10", "S1:BB10", "BC1:BJ10")
        Set ws = ThisWorkbook.Sheets(1)
        Set wbTemp = Workbooks.Add(xlWBATWorksheet)
    
        sFilename = "ranges.pdf"
        With wbTemp
            For i = 0 To UBound(ar)
                If i > 0 Then .Worksheets.Add after:=.Sheets(i)
                With .Sheets(i + 1)
                    .PageSetup.Orientation = 2
                    .PageSetup.Zoom = False
                    .PageSetup.FitToPagesWide = 1
                    ws.Range(ar(i)).Copy .Range("A1")
                End With
            Next
            .ExportAsFixedFormat xlTypePDF, Filename:=sFilename, Openafterpublish:=True
            .Close False
        End With
    
    End Sub
    

    【讨论】:

    • 谢谢!这正是我想要的!
    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多