使用vba过滤数据透视表中的行标签

时间:2013-05-15 14:20:31

标签: excel excel-vba powerpivot vba

我搜索了很多论坛,但仍未找到答案:

我正在尝试过滤我的行标签,该标签从1到10不等,只显示5和10。

我编写了以下代码,但它产生错误1004“无法获取数据透视表类的PivotFields属性”。

ActiveWorkbook.Sheets("SideCalculations-KPIs").Activate
With ActiveSheet.PivotTables("PivotTable1").PivotFields("ToStateId")
    .ClearAllFilters
    .PivotItems("5").Visible = True
    .PivotItems("10").Visible = True
End With

提前致谢

2 个答案:

答案 0 :(得分:1)

错误中明确提到,数据透视表的名称不正确。

可能是“Pivot字段的名称”已从“ToStateId”更改。为了找到合适的名称,请运行以下代码:

For each pField in ActiveSheet.PivotTables("PivotTable1").PivotFields
     Debug.Print pField.Name
Next pField

转到VBA编辑器,按Ctrl + G,它将打开即时窗口。它将显示所有可用的数据透视字段。然后请使用正确的数据透视字段并尝试。

答案 1 :(得分:0)

你可以尝试这样的事情:

dim pvItem as pivotitem 
For Each pvtitem In Sheets("SideCalculations-KPIs").PivotTables("PivotTable1").PivotItems
    if (pvitem.name="5" or pvitem.name="10) then
        pvitem.visible=true
    else
        pvitem.visible=false
    end if
Next