仅显示特定的数据透视图

时间:2015-11-24 13:03:12

标签: excel vba excel-vba

我对VBA有点新意,我保证会进行搜索,但我担心我太新,甚至无法正常搜索,因为我不确定我可能需要的术语。

我有一个数据透视表,它是作为较大宏的一部分创建的。一旦创建,我想只显示特定的PivotItems。到目前为止,我看到我只能“隐藏”那些我不想看到的东西。这不起作用,因为我提出了几个相似(但略有不同)的报告。有些不共享PivotItems,并且在运行宏时我得到一个错误,因为该项缺失。我的代码:

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,但有些没有,所以这会导致报告中的错误,甚至没有要隐藏的项目。所有报告都有我不想展示的项目,所以如果我能明确说明我想要的项目会更好。

这有什么意义吗?

1 个答案:

答案 0 :(得分:0)

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

关键是您列出了要显示(或不显示)的所有项目,如果该项目在给定的PivotTable中不存在,它将被忽略,因为该名称永远不会传递到选择言。

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