【发布时间】:2016-08-05 01:40:44
【问题描述】:
我正在尝试将跨多个工作簿的工作表选择打印到单个 PDF。我之前将多张纸打印到一个 PDF 的方法是选择所有这些纸。因此我的问题是——是否可以在多个打开的工作簿中选择多个工作表?
【问题讨论】:
我正在尝试将跨多个工作簿的工作表选择打印到单个 PDF。我之前将多张纸打印到一个 PDF 的方法是选择所有这些纸。因此我的问题是——是否可以在多个打开的工作簿中选择多个工作表?
【问题讨论】:
' Usage:
' PublishRangePDF(Thisworkbook, fileName) : Will Publish the entire Workbook
' PublishRangePDF(AvtiveSheet, fileName) : Will Publish all selected worksheets
' PublishRangePDF(Range("A1:H100"), fileName) : Will Publish Range("A1:H100")
Sub PublishRangePDF(RangeObject As Object, fileName As String, Optional OpenAfterPublish As Boolean = False)
On Error Resume Next
RangeObject.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=OpenAfterPublish
On Error GoTo 0
End Sub
Sub BatchPDF()
Dim i As Integer, j As Integer
Dim wb As Workbook
Dim arrWorkbooks(5)
Dim ar As Variant
Set arrWorkbooks(0) = Workbooks("publish-multiple-workbooks-pdf.xlsm")
arrWorkbooks(1) = Array("Sheet1", 2, "Sheet3", 4)
Set arrWorkbooks(2) = Workbooks("Dictionary 4.xlsm")
arrWorkbooks(3) = Array("Current", "Previous", "Previous Pivot")
Set arrWorkbooks(4) = Workbooks("InkEdit Answer.xlsm")
arrWorkbooks(5) = Array(1, 2, 3)
For i = 0 To UBound(arrWorkbooks) Step 2
If wb Is Nothing Then
arrWorkbooks(i).Sheets(arrWorkbooks(i + 1)).Copy
Set wb = ActiveWorkbook
Else
arrWorkbooks(i).Sheets(arrWorkbooks(i + 1)).Copy After:=wb.Sheets(wb.Sheets.Count)
End If
Next
PublishRangePDF wb, ThisWorkbook.Path & "\excel-data.pdf"
wb.Close False
End Sub
【讨论】: