首页 > 解决方案 > 如何按数据透视表中的值字段过滤?

问题描述

我正在尝试过滤我的数据透视表中的“测试总和”值字段。

错误信息

应用程序定义或对象定义的错误

出现在第 4 行。

ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of TEST").PivotFilters.Add _
  Type:=xlValueIsGreaterThan, Value1:=30
Private Sub Filter()
    Application.ScreenUpdating = False
    ActiveSheet.PivotTables("PivotTable1").ManualUpdate = True 
    ActiveSheet.PivotTables("PivotTable1").PivotFields(2).ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of TEST").PivotFilters.Add _
      Type:=xlValueIsGreaterThan, Value1:=30
    ActiveSheet.PivotTables("PivotTable1").ManualUpdate = False
    Application.ScreenUpdating = True
End Sub

在此处输入图像描述

标签: excelvbafilterpivot-table

解决方案


要过滤数据透视表,您必须解析数据透视表,然后将不想显示的项目的可见性设置为 false。尝试以下操作:

Sub Pivot_Filtering()
    Dim pf As PivotField
    Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of Test")
    'Clear Out Any Previous Filtering
  pf.ClearAllFilters
  'Enable filtering on multiple items
  pf.EnableMultiplePageItems = True
    For i = 2 To pf.PivotItems.Count
        If pf.PivotItems(i) > 30 Then
            pf.PivotItems(i).Visible = False
        End If
    Next i
End Sub

推荐阅读