只显示特定的数据透视项

我对VBA有一点新意,我保证会进行一次search,但是恐怕我太年轻了,甚至无法正确search,因为我不确定可能需要的术语。

我有一个数据透视表是作为一个更大的macros的一部分创build的。 一旦创build,我只想显示特定的PivotItems。 到目前为止,我看到我只能“隐藏”那些我不想看到的东西。 这是行不通的,因为我拉了几个类似的(但略有不同)的报告。 有些不共享PivotItems和运行macros时,我得到一个错误,因为该项目丢失。 我的代码:

Sub PivotDetails() With ActiveSheet.PivotTables("PivotTable5").PivotFields("Queue") .PivotItems("CAR").Visible = False .PivotItems("DOG").Visible = False .PivotItems("TRUCK").Visible = False End With End Sub 

所以我的一些报告有DOG,但有些报告没有,所以这会导致报告错误,甚至没有隐藏的项目。 所有的报告都有我不想显示的项目,所以如果我能明确说明我想要的项目会更好。

这是有道理的吗?

您可以遍历PivotField每个PivotItem ,并使用Select语句来确定是否希望它可见或不可见。

重点是列出所有要显示(或不显示)的项目,并且如果该项目不存在于给定的PivotTable ,它将被忽略,因为该名称永远不会传递到Select语句中。

 Sub PivotDetails() Dim ws As Worksheet, pt As PivotTable, pf As PivotField, pi As PivotItem Set ws = Sheets("mySheet") 'replace with your sheet name Set pt = ws.PivotTables("PivotTable5") Set pf = pt.PivotFields("Qeue") For Each pi In pf.PivotItems Select Case pi.Name Case Is = "CAR", "DOG", "TRUCK" 'add more values as needed pi.Visible = False Case Else pi.Visible = True End Select Next End Sub