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

我search了很多论坛,但还没有find答案:

我试图过滤从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 

提前致谢

在错误中明确提到,PivotField的名称不正确。

可能的是枢轴字段的名称已经从“ToStateId”改变了。 为了find合适的名字,请运行以下代码:

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

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

你可以尝试这样的事情:

 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