【发布时间】:2016-02-17 11:46:57
【问题描述】:
我有这段代码,它应该遍历下拉列表中的每个项目。选择下一个项目时,应更新主工作表。然后创建工作表的pdf。发生的情况是它在每个项目之后创建一个 pdf NAMED,但内容与第一个项目相比没有变化。我基本上有 50 个第 1 项的 pdf,称为 50 种不同的东西。而我想要以每件事命名的 50 个事物的 50 个 pdf 文件?任何帮助表示赞赏
Sub Create_pdf_pack()
Dim inputRange As Range
Dim c As Range
Set inputRange = Evaluate(Range("AD5").Validation.Formula1)
For Each c In inputRange
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
fileName:="C:\test\" & c.Value, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next c
End Sub
【问题讨论】:
-
您总是导出相同的
ActiveSheet,您可能希望根据 c 的值更改导出的工作表。也许Sheet(c.Value).ExportAsFixedFormat ...,但不确定,因为你没有解释 inputrange 的内容是什么。 -
下拉列表中有公司名称。当从列表中选择新公司时,页面会更新该公司信息。所以我一直在使用 Sheet1,它始终是 ActiveSheet。到目前为止,ActiveSheet 是唯一一种在 pdf 上生成表格的方法,问题是它显然没有循环遍历列表,因为它只提供第一家公司的信息?
-
您的代码不会更新工作表,因为它不会更新在组合框中做出的选择,您只是在运行组合框中的可用值。您可以尝试更新 AD5 单元格的值并在导出之前计算每个值的工作表。