如何用vba对数据透视表的页字段进行筛选?

在vba中PivotField对象代表数据透视表的字段。

数据透视表的行、列、数值、筛选(页)字段均可以用PivotField对象表示。

所有的字段项目可以使用PivotItem对象表示。

要对数据透视表的页字段(筛选字段)进行筛选,先使用ClearAllFilters方法清除原字段的选项,然后可以直接使用CurrentPage属性设置要显示的筛选值即可。

以下vba代码举例演示了如何快速地对数据透视表中的页字段(筛选字段)进行筛选:

Sub QQ1722187970()
    Dim oPC As PivotCache
    Dim oPT As PivotTable
    Dim oPF As PivotField
    Dim oPI As PivotItem
    Dim oWK As Worksheet
    Set oWK = Sheet2
    Set oPT = oWK.PivotTables(1)
    With oPT
        Set oPF = .PivotFields("分类")
        With oPF
            '先清除所有项目的筛选
            .ClearAllFilters
            '重新筛选
            .CurrentPage = "新标"
        End With
    End With
End Sub

以上是针对数据透视表的页字段(筛选字段)的单个项目的筛选,如果要同时筛选多个项目,则需要先设置EnableMultiplePageItems为True,然后将不要显示的字段项目PivotItem对象的Visible属性设置为False才行,代码如下:

Sub QQ1722187970()
    Dim oPC As PivotCache
    Dim oPT As PivotTable
    Dim oPF As PivotField
    Dim oPI As PivotItem
    Dim oWK As Worksheet
    Set oWK = Sheet2
    Set oPT = oWK.PivotTables(1)
    With oPT
        Set oPF = .PivotFields("分类")
        With oPF
            .EnableMultiplePageItems = True
            '把不要显示的字段项目设置为不可见
            .PivotItems("新标").Visible = False
            .PivotItems("整体标").Visible = False
        End With
    End With
End Sub

 

 

       

发表评论