我的工作簿中包含多个数据透视表。我找到了一些代码,可以一次刷新所有数据透视表(分配给一个按钮)。但是为了让我的其余计算工作,我当前必须转到每个表并从行标签过滤器中取消选择(空白)。
我尝试了很多选项来添加代码,这些代码也会过滤掉空白,但似乎无法正确理解语法。
这是我目前用来刷新所有数据透视表的内容;我还需要添加什么来过滤空白?
Sub RefreshAllPivotTables()
Dim PT As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
Next PT
Next WS
End Sub
答案 0 :(得分:4)
试试这个。基本上只是通过每个Pivot字段添加了循环
Sub RefreshAllPivotTables()
Dim PT As PivotTable
Dim WS As Worksheet
Dim PF As PivotField
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
For Each PF In PT.PivotFields
On Error Resume Next
PF.PivotItems("(blank)").Visible = False
Next PF
Next PT
Next WS
End Sub