【问题标题】:Export Excel Worksheets (from list of sheet names) to PDF with VBA使用 VBA 将 Excel 工作表(从工作表名称列表)导出为 PDF
【发布时间】:2021-03-05 00:08:29
【问题描述】:

我想编写一个 VBA 宏来根据工作表名称列表将工作表导出为单个 PDF。这些名称的列表位于 Sheet1 上的 A22:A56 范围内。

【问题讨论】:

  • 从宏记录器开始,然后使用该代码。

标签: excel vba


【解决方案1】:

此代码首先隐藏工作簿中不在列表中的工作表,然后将所有可见工作表导出到单个 PDF 文件,最后取消隐藏所有隐藏工作表。

在运行前设置正确的pathlist range

Sub select_sheets()

Dim ws As Worksheet
Dim rng As Range
Dim path As String

'CONFIG
'----------------
path = "/Users/user/Desktop/MyFileName.pdf" 'set path to save file
Set rng = Sheets("Sheet1").Range("A22:A56") 'set list range
'----------------

'hide sheets that aren't in the list
For Each ws In Worksheets

    If WorksheetFunction.CountIf(rng, ws.Name) = 0 Then
        Sheets(ws.Name).Visible = False
    End If
    
Next
    
'export workbook to PDF
Call export_pdf(path)
    
'unhide all sheets
For Each ws In Worksheets
    Sheets(ws.Name).Visible = True
Next
    
End Sub

Sub export_pdf(path As String)

    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=path, _
    Quality:=xlQualityMinimum, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
        
End Sub

【讨论】:

  • 谢谢!这很棒。如何重新编写 path 字符串以始终将 pdf 导出到与工作簿相同的文件夹?
  • @Bberghy 我很高兴它成功了。你可以做类似path = Application.ActiveWorkbook.Path & "/MyFileName.pdf"
  • @Bberghy 如果我想将结果保存为 xlsx 而不是 pdf,我应该改变什么?
猜你喜欢
  • 2021-04-22
  • 2016-08-04
  • 2014-01-12
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多