VBA并不包括pdf输出中的每张表格

时间:2017-06-05 20:31:29

标签: excel vba excel-vba pdf

我试图将4张纸输出到一个pdf文件中,但由于某种原因,输出只包括第一张纸,"报告1a"。这是我的代码:

Dim Ref As Worksheet

Set Ref = Worksheets("Charts for Report")

Sheets(Array("Report 1a", "Report 1b", "Report 2", "Comments")).Select
Sheets("Report 1a").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "T:\QA\Sample Reports\Reports for CCC\" & Ref.[B1] _
    & " - " & Ref.[B2] & " - " & Worksheets("Provider Data").[I2] & ".pdf" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=False

Worksheets("Report 1a").Select

我甚至尝试录制一个宏来查看我做错了什么。当我录制它时,它会工作(即包括所有4个页面),但是如果我尝试重新运行它,它只会包括第一页("报告1a和#34;)。 / p>

1 个答案:

答案 0 :(得分:0)

我仍然不知道出了什么问题,但我至少找到了解决办法。

在导出任何内容之前,我隐藏了我不想要包含的所有工作表。 (更有理由避免像瘟疫一样选择!)

  y    x1  x2   x3
1 2    3   NA   NA 
2 3    2   NA   NA  
3 2    6   2    NA  
4 5    8   5    2 
5 1    3   6    3 
6 1    0   7    9 

然后我只导出整个工作簿:

Sub Hide_non_Packet_Sheets()
    Dim index As Integer
    Dim SheetExists As Worksheet

    For index = 1 To 50
        Set SheetExists = Sheets(index)
        On Error Resume Next
        If Sheets(index).Name = "Page1" Or Sheets(index).Name = "Page2" Then
            Sheets(index).Visible = True
            Else
            Sheets(index).Visible = False
            End If
        Next index
End Sub

然后,如果您愿意,可以设置一个宏来取消隐藏工作表。