由于未来的添加,我的数据透视表的源数据范围比我现有的数据长。对于这个原因,在数据透视表过滤器中,我有一个名为“空白”的PivotItem。
以下代码每次更改PivotItem然后打印它,然后是下一个项目,依此类推。
问题:它还会打印“空白”数据透视表,它没有任何信息。这就是为什么在计算页面时我将“-1”添加到行pivF.PivotItems.Count - 1
问题:任何人都可以帮我修改下面的代码以跳过该空白页面(或者任何人都可以告诉我如何摆脱那个空白的数据透视图。)
Private Sub CommandButton3_Click()
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Dim pivF As PivotField, pivI As PivotItem, i As Integer
Set pivF = ActiveSheet.PivotTables("Leistungsnachweise").PivotFields("Tour")
Application.ScreenUpdating = False
i = 0
For Each pivI In pivF.PivotItems
pivF.CurrentPage = pivI.Name
i = i + 1
Range("M2").Value = "Seite " & i & " von " & pivF.PivotItems.Count - 1
ActiveWindow.SelectedSheets.PrintOut
Next pivI
Application.ScreenUpdating = True
ActiveSheet.PivotTables("Leistungsnachweise").PivotFields("Tour").CurrentPage = 1
End Sub
答案 0 :(得分:2)
两个建议:
比如说,你通过VBA确定的activeRange
是Sheet1!A1:M2555:
pivF.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, SourceData:=activeRange)
示例:
Dim tab as ListObject
Set tab = ws.ListObjects("Table1")
pivF.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, SourceData:=tab)
或者,您可以在设计时将表格作为源