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