【问题标题】:Generating multiple pdfs in Excel: possibility to automate?在 Excel 中生成多个 pdf:自动化的可能性?
【发布时间】:2015-11-14 13:00:59
【问题描述】:

在 Excel 中,我有两张表,一张是原始数据,另一张是报告模板,它从第一张表中执行 =vlookup 并用相关数据填充它。我需要自动化生成第二张表(报告)的多个 pdf 的过程,每个 pdf 都有不同的数据(report1 = Sheet1/Row1 中的数据,report2 = Sheet1/Row2 中的数据等)。关于这怎么可能的任何想法?或者,使用不同的软件更容易吗?谢谢。

【问题讨论】:

    标签: excel pdf automation


    【解决方案1】:

    这些是“数据”表中使用的值

    1   Bill    Jones       53
    2   Steve   Smith       23
    3   Greg    Peterson    18
    

    “报告”表上的布局

    Column A    Column B
    First       =VLOOKUP(1, Data!A1:D3, 2)
    Last        =VLOOKUP(1, Data!A1:D3, 3)
    Age         =VLOOKUP(1, Data!A1:D3, 4)
    

    更新 vlookup 方程然后打印 PDF 的 vba 代码

    Sub Create_Report()
    
        Sheets("Report").Select
    
        For i = 1 To 3
            ' Update vlookup equation
            Range("B1").Select
            ActiveCell.FormulaR1C1 = "=VLOOKUP(" & i & ", Data!RC[-1]:R[2]C[2], 2)"
            Range("B2").Select
            ActiveCell.FormulaR1C1 = "=VLOOKUP(" & i & ", Data!R[-1]C[-1]:R[1]C[2], 3)"
            Range("B3").Select
            ActiveCell.FormulaR1C1 = "=VLOOKUP(" & i & ", Data!R[-2]C[-1]:RC[2], 4)"
    
            ' Make PDF version of report sheet
            Create_PDF Sheets("Report"), "Report" & i & ".pdf"
        Next i
    End Sub
    
    ' Code taken from
    'http://msdn.microsoft.com/en-us/library/ee834871%28v=office.11%29.aspx
    Sub Create_PDF(Myvar As Object, FixedFilePathName As String)
    
        'Test to see if the Microsoft Create/Send add-in is installed.
        If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
             & Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then
    
            'Now export the PDF file.
            On Error Resume Next
            Myvar.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    Filename:=FixedFilePathName, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=OpenPDFAfterPublish
            On Error GoTo 0
        End If
    End Sub
    

    您可以直接调用此代码,使用 Excel 中的按钮,或从其他编程语言调用宏以进一步自动化。

    这是在 Excel 2013 上测试的。

    FWIW - Create_Report 代码基于一个宏,该宏记录了更新 vlookup 值所涉及的手动步骤。记录宏功能对于弄清楚如何自动化 Excel 有很大帮助。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2012-01-13
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多