excel - 如何按数据透视表中的值字段过滤?
问题描述
我正在尝试过滤我的数据透视表中的“测试总和”值字段。
错误信息
应用程序定义或对象定义的错误
出现在第 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
解决方案
要过滤数据透视表,您必须解析数据透视表,然后将不想显示的项目的可见性设置为 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
推荐阅读
- node.js - 深 mongodb 聚合以在对象数组中创建具有公共字段的组?
- visual-studio-code - 如何找出哪个扩展在 vscode 中提供了命令?
- angular - 'com2' 等组件名称的 Angular CLI 组件生成错误
- reactjs - React Native 中的过滤问题
- shell - 想要下载可从主页访问的 html 文件列表
- javascript - 执行顺序——Promise 回调什么时候执行?
- c# - 使用本地数据库中的信息在使用 Xamarin 的 Android 中显示通知信息
- swift - 当我没有主故事板时,如何在 Xcode 11.4 中修复“线程 1:异常:在捆绑 NSBundle 中找不到名为'Main'的故事板”错误?
- flutter - 在 Flutter 和 Dart 中重构小部件的最优雅/高效的方式
- javascript - 多图像幻灯片 Javascript 问题