首页 > 解决方案 > 在一个pdf中组合多个范围

问题描述

在一些帖子的基础上,我能够制作下面的脚本,它将几个选定的范围打印到 pdf 文件中。但是,所有范围都打印在单独的纸张上。

当前 NewRng.Address="A1:G9,A13:G14,A18:G37"。我认为它可能需要是 "A1:G9;A13:G14;A18:G37" (由 ; 而不是 , 分隔)(?)

有人可以解释如何在一张纸上打印选定的范围吗?

太感谢了!

脚本:

   Sub CreatePDF_Selection1()

    Dim rng1 As Range, rng2 As Range, rng3 As Range
    Dim NewRng As Range

    With ThisWorkbook.Sheets("Sheet1")
        Set rng1 = .Range("A1:G9")
        Set rng2 = .Range("A13:G14")
        Set rng3 = .Range("A18:G37")
        
        Set NewRng = .Range(rng1.Address & "," & rng2.Address & "," & rng3.Address)

        Debug.Print NewRng.Address
    
    Sheets("Sheet1").Activate
    ActiveSheet.Range(NewRng.Address).Select
    
    Sheets(Array("Sheet1")).Select

   ThisWorkbook.Sheets(Array("Sheet1")).Select
   Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="U:\Sample Excel File Saved As PDF", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=True, _
    From:=1, _
    OpenAfterPublish:=True
    End With

   End Sub

标签: excelvba

解决方案


而不是选择各种范围,只需隐藏您不想打印的行,然后打印整个范围。

Option Explicit

Sub CreatePDF_Selection1()
   
  Dim rng1 As Range

  ThisWorkbook.Sheets("Sheet1").Activate
  Set rng1 = Range("A1:G37")
     
  Range("A10:A12").EntireRow.Hidden = True  '*** Hide rows not to print ***
  Range("A15:A17").EntireRow.Hidden = True
            
  rng1.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="U:\Sample Excel File Saved As PDF", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=True, _
    From:=1, _
    OpenAfterPublish:=True

  Rows("1:37").EntireRow.Hidden = False '*** Unhide hidden rows ***

End Sub 'CreatePDF_Selection1()


高温高压

编辑:附加测试输出。 在此处输入图像描述


推荐阅读