【发布时间】:2018-05-04 16:04:27
【问题描述】:
我正在尝试编写一个将一些表格打印为 pdf 的宏。我有一个工作表(“PDF”),在 D 列中列出工作簿中的所有工作表,在 F 列旁边我有一个 TRUE/FALSE 值列表。我的宏应该将 D 列中 F 列中为 TRUE 的所有工作表打印到单个 pdf 文件中。
此工作簿中的工作表数量确实有所不同。
下面是我第一次尝试这个代码
Sub PDFCreater()
Dim pdfName As String
Dim FullName As String
Dim myArray() As Variant
Dim ArrSize As Integer
Dim ArrWkst As String
Dim RowCnt As Long, ArrCnt As Long
pdfName = Sheets("PDF").Range("D1").Text
FullName = ThisWorkbook.Path & "\" & pdfName & ".pdf"
ReDim myArray(Sheets("PDF").Range("D2").Value) 'Size of array/ number of sheets in PDF
ArrCnt = 0
For RowCnt = 8 To 302
If Sheets("PDF").Cells(RowCnt, 6).Value = True Then
myArray(ArrCnt) = Cells(RowCnt, 4).Value
ArrCnt = ArrCnt + 1
End If
RowCnt = RowCnt + 1
Next
'Select all worksheets in MyArray()
Sheets(myArray).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FullName _
, Quality:=xlQualityMedium, IncludeDocProperties:=False,
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
【问题讨论】: