Excel VBA导出并附加到PDF

时间:2017-09-26 20:05:38

标签: excel vba excel-vba

我正在寻找一些帮助来解决保存到PDF的问题。我有一张包含2页打印信息的表格。此工作表上显示的信息由下拉选项控制,以选择数百个选项中的一个。我有一个打印到PDF功能,可以正常显示所显示信息的单一视图,因此我使用下拉菜单选择1个选项,然后单击保存到PDF按钮,这一切都很有效。

我需要添加第二个函数,它将循环显示下拉框中的所有可用选项,并将所有这些选项添加到要保存的单个PDF中。我可以处理循环中的所有标准代码,但是如何在循环内部构建PDF文件。我知道如何构建一个工作表数组以导出到单个PDF但是这种“循环”#9;功能是我努力寻找答案的东西。

有人可以帮忙吗?如果您需要更多信息,请询问。

由于

1 个答案:

答案 0 :(得分:0)

在解决方案中,假设我们有一个名为Table2的表。 我们还有一个帮助表(用于存储过滤的表),它是Hiden并命名为:Help。

Option Explicit

Sub print_to_pdf()
    Dim sh  As Long
    Dim rg  As Range
    Dim Rng As Range
    Dim rw  As Range

    Application.ScreenUpdating = False

    For Each rw In Range("Table2[#All]").Rows

        If rw.EntireRow.Hidden = False Then
            If Rng Is Nothing Then Set Rng = rw
            Set Rng = Union(rw, Rng)
        End If

    Next

    Rng.Copy

    With Sheets("help")
        .Visible = True
         sh = .Cells(Rows.Count, "A").End(xlUp).Row + 2
        Set rg = Range("a3" & ":" & "a" & sh - 2)

        .Activate
        .Cells(sh, "A").Select
        ActiveSheet.Paste

        ActiveSheet.PageSetup.PrintArea = rg

        ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\rep.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

        .Visible = False
    End With

    Application.ScreenUpdating = True

    MsgBox "Your PDF Has been Created with Success!!", vbInformation
End Sub

您可以在帮助表中附加数据,然后导出pdf。

参考:https://stackoverflow.com/questions/