从工作簿中所有具有相同数据透视字段的数据透视表中筛选出 PivotFiled 中的(空白)

从工作簿中所有具有相同数据透视字段的数据透视表中筛选出 PivotFiled 中的(空白)

我在两个工作表中有一堆(14 个)数据透视表(每个工作表中 7 个)。

我在工作表上有一个刷新按钮,可以使用以下代码刷新所有数据透视表:

Sub Refresh_Pivots()

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

所有数据透视表的结构都相似,并且所有数据透视表中都有一个名为“Month”的字段。当我单击“刷新”时,我需要从所有数据透视表中的数据透视字段“Month”中过滤掉“(blank)”。

为此,我在 pt.RefreshTable 之后的嵌套 For 循环下添加了这一行 -

pt.pf("month").pi("(blank)").ShowDetail = False

所以修改后的代码是:

子刷新枢轴()

Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim WS As Worksheet
    For Each WS In ThisWorkbook.Worksheets
        For Each pt In WS.PivotTables
          pt.RefreshTable
          pt.pf("month").pi("(blank)").ShowDetail = False
          Next pt
    Next WS
End Sub

但是,我遇到了编译错误。我不明白为什么。我对 VBA 还比较陌生,所以如果这个问题很愚蠢,我很抱歉。

另外,我需要数据中的那些空白,只需将它们从数据透视表中过滤掉即可。谢谢。

答案1

我认为您需要用 PivotFields 替换 pf,用 PivotItems 替换 pi

相关内容