在解决方案中,假设我们有一个名为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/
-1这将是高度依赖于应用。也就是说,你需要发布一些代码来明确你现在正在做什么,以及为什么它不起作用。一般来说,Excel会将任何你想要的东西导出到PDF中。如果你想导出多个“视图”等,你将需要在一个地方得到所有的人,并做一个PDF导出。这通常涉及创建帮助表/工作簿。或者,您可以使用Excel创建多个PDF,并使用其他工具将其合并。使用Excel无法“附加到PDF”。 –
会尝试使用帮助表/工作簿,但感觉这可能是密集的超过400条记录。我找到了合并PDF的例子,所以我也会尝试创建单独的PDF并使用这种方法合并它们。我认为第二种选择可能会快得多,但根本不确定。有没有什么聪明的方法让助手床单/工作簿选项快速优化呢,拜伦?不知道什么协议在这里。我是否会在我的代码发布后发布我的代码,因为我没有任何代码可以发布。无论如何,我会建议我选择什么选项以及为什么。我正在使用Excel 2013,Adobe 10标准 – nelly2000
Re:400张表格,您可能会对Excel能够处理的内容感到惊讶。我肯定会把它们放在一个新的/空白的工作手册中,这样你就不会污染你的源工作簿。我在一些相当密集的事情上使用了这种技术,并且它倾向于工作。可能值得进行测试,看看它是否会运行这么多,然后如果速度太慢或无法运行,则优化它。更可能的是,它会运行得很好,你就会完成。 –