将某些工作表保存为 PDF

将某些工作表保存为 PDF

我有一个 Excel 工作簿,最终用户在其中进行一些选择,根据这些选择,将需要保存为单个 PDF 的工作表列在工作表 1 的单元格 B10 中,如下所示(E1、E2、E3、E4......)

现在我已经尝试了下面这个宏,但是它不能正常工作,原因在代码下面给出:

Sub pdff()

   Sheets("E1").Activate
   ActiveSheet.UsedRange.Select
   Sheets("E2").Activate
   ActiveSheet.UsedRange.Select
   Sheets("E3").Activate
   ActiveSheet.UsedRange.Select

   ThisWorkbook.Sheets(Array("E1", "E2","E3")).Select
   Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      "C:\Users\Damon\Desktop\pdfmaker.pdf", Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
      True
End Sub

代码存在的问题:

  • 代码运行后,它会将工作表组合在一起,必须手动取消组合。
  • 代码保存了设置打印区域之外的区域(如果我手动将每张纸保存为 PDF,则不会发生这种情况)
  • 该代码不是动态的,它不会从单元格 B10 中获取工作表名称

答案1

和:

在此处输入图片描述

此版本将满足您的所有目标:

Sub pdff()
    Dim s As String, ary, a, sh As Worksheet

    Set sh = ActiveSheet
    s = Sheets("Sheet1").Range("B10").Text
    ary = Split(s, ",")

    For Each a In ary
        Sheets(a).Select
        Sheets(a).Activate
        Sheets(a).Range(ActiveSheet.PageSetup.PrintArea).Select
    Next a

    ThisWorkbook.Sheets(ary).Select

    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\Damon\Desktop\pdfmaker.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

    sh.Select
End Sub

只要确保你有一个工作表1以及E1床单。

相关内容