在Excel中生成多个pdf:自动化的可能性?

时间:2015-08-20 18:34:52

标签: excel pdf automation

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

1 个答案:

答案 0 :(得分:0)

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

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非常有帮助。