excel - A1 值更改时选择透视切片器中的项目
问题描述
当我更改“A1”值时,我试图在 Pivot Slicer 中选择一个项目。
因此,当我将“A1”值更改为“ABC”时,代码应在切片器项中查找“ABC”并选择它。
“A1”值将与切片器中的项目相同。
这是我的尝试,但似乎不起作用并且看起来不对:(
Private Sub WorkSheet_Change(ByVal Target As Range)
Dim i As Integer
Dim ws As Worksheet
Set ws = ActiveSheet
If Not Intersect(Target, Range("A1")) Is Nothing Then
For i = 1 To ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems.Count
If ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Value = ActiveSheet.Range("A1") Then
ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = True
Else
ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = False
End If
Next
End If
End Sub
先感谢您。
解决方案
我能够找到可行的方法。
这并不完美但有效,但仍在寻找更好的方法来做到这一点。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim ws As Worksheet
Set ws = ActiveSheet
If Not Intersect(Target, Range("A1")) Is Nothing Then
ActiveWorkbook.SlicerCaches("Slicer_Test").Slicers(1).SlicerCache.ClearAllFilters
For i = 1 To ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems.Count
If ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Value <> ActiveSheet.Range("A1") Then
ActiveWorkbook.SlicerCaches("Slicer_Test").SlicerItems(i).Selected = False
End If
Next
End If
End Sub
推荐阅读
- llvm - LLVM 断言“解决此责任集之外的符号”
- java - 如何更改 RunTime 中的方法注释值?
- php - 非捕获命名组
- javascript - Formik - 将自定义组件的自定义验证插入到我当前工作的 Formik 表单中
- ios - CoreData 获取请求 NSPredicate 不起作用
- mybatis - 传递参数和检索键值结果集时出错
- rest - 如何使用 RSA Archer REST API 来获取报告?
- vba - 使用数组过滤器打开报表
- android - android: ViewPager Indicator 就像 Tinders 图片
- python - 基于 spark 数据框单元格值的查询