excel-2010 - 将下拉菜单连接到 Excel 切片器
问题描述
事件例程不更改切片器表
使用了一些基本示例代码但无法正常工作。
选项显式
' The Event routine
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "A7" Then
SelectSlicerItem ThisWorkbook.SlicerCaches(1), Target.Value
End If
End Sub
Sub SelectSlicerItem(sc As SlicerCache, itemText As String, Optional defaultItem As String = "")
Dim si As SlicerItem, found As Boolean
found = False
sc.ClearManualFilter
For Each si In sc.SlicerItems
' Debug.Print si.Caption, si.value
If si.Caption <> itemText Then
si.Selected = False
found = True
End If
Next si
If si.Caption <> Jan Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = False
.SlicerItems("3").Selected = False
.SlicerItems("4").Selected = False
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
End With
End If
Next si
If si.Caption = FebYTD Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = True
.SlicerItems("3").Selected = False
.SlicerItems("4").Selected = False
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
Next si
If si.Caption = MarYTD Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = True
.SlicerItems("3").Selected = True
.SlicerItems("4").Selected = False
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
End With
End If
Next si
If si.Caption = AprYTD Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = True
.SlicerItems("3").Selected = True
.SlicerItems("4").Selected = True
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
End With
End If
Next si
If si.Caption = MayYTD Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = True
.SlicerItems("3").Selected = True
.SlicerItems("4").Selected = True
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
End With
End If
Next si
If si.Caption = JunYTD Then
ActiveSheet.Shapes.Range(Array("Period")).Select
With ActiveWorkbook.SlicerCaches("Slicer_Period")
.SlicerItems("1").Selected = True
.SlicerItems("2").Selected = True
.SlicerItems("3").Selected = True
.SlicerItems("4").Selected = True
.SlicerItems("5").Selected = False
.SlicerItems("6").Selected = False
End With
If Not found And defaultItem <> "" Then SelectSlicerItem sc, defaultItem
End Sub
预期的结果是,一旦我选择了我想要的下拉选项,我的切片器就会改变以反映我为每个选择设置的结果。
你能告诉我吗?
解决方案
推荐阅读
- replace - 如何用 Julia 中的变量模式替换 DataFrame 列中的子字符串?
- javascript - 修复了导航栏停止滚动
- python - 计算一组回报的下行偏差
- angular - 使用 Axis2,有没有办法通过文件上传接收角度表单数据?
- laravel - 从共享主机上的 laravel 7.x 中删除“公共”
- java - Hibernate不在SQL语句中添加级联类型
- javascript - HttpOnly cookie 如何与 Javascript 和身份验证代理一起使用?
- css - 如何使按钮与我的图像对齐
- pytorch - 如何将 L2 正则化添加到成本函数 pytorch?
- flutter - Flutter FutureProvider 会阻塞 UI,直到 Future 完成