我有一个宏来刷新我的工作簿中的所有数据透视表,我需要添加代码来删除(空白)' s

时间:2018-03-21 23:33:27

标签: excel vba excel-vba pivot

我的工作簿中包含多个数据透视表。我找到了一些代码,可以一次刷新所有数据透视表(分配给一个按钮)。但是为了让我的其余计算工作,我当前必须转到每个表并从行标签过滤器中取消选择(空白)。

我尝试了很多选项来添加代码,这些代码也会过滤掉空白,但似乎无法正确理解语法。

这是我目前用来刷新所有数据透视表的内容;我还需要添加什么来过滤空白?

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

1 个答案:

答案 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