我有一个带过滤器的pivottable。过滤器包含1到30的列表,每个列表必须单独打印。也就是说,每次我必须更改过滤器并打印过滤结果。
我想要的是立刻打印所有这些。
数字列表不是连续的或静态的。这意味着某些数字会下降,之后可能会添加一些新数字。
通过宏录制器命令,我可以达到以下情况。但问题是,我不知道如何让它变得动态。我的意思是,如何说“为现有数字做程序”。
有人可以帮助我纠正并完成以下宏吗?
Sub Makro1()
'
' Makro1 Makro
'
ActiveSheet.PivotTables("Leistungsnachweise").PivotFields("Tour").CurrentPage _ = "1"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False
ActiveSheet.PivotTables("Leistungsnachweise").PivotFields("Tour").CurrentPage _ = "2"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False
End Sub
谢谢,
DIO
答案 0 :(得分:0)
有人在以下链接中给了我一个明确的答案。我发现它很有用,所以我与你分享。
You can find it in the Ozgrid Forum
以下是答案的副本:
Sub LoopField()
Dim pivF As PivotField
Dim pivI As PivotItem
Set pivF = ActiveSheet.PivotTables("Leistungsnachweise").PivotFields("Tour")
Application.ScreenUpdating = False
For Each pivI In pivF.PivotItems
pivF.CurrentPage = pivI.Name
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next pivI
'Clear filer
pivF.ClearAllFilters
Application.ScreenUpdating = True
End Sub