在有关课程出勤率的KPI仪表板中,我有一个包含课程名称的下拉列表。用户选择课程,宏必须在切片器(连接到多维数据集)中选择所选择的课程。
使用宏记录器时,我看到记录器使用一种索引来选择用户想要的课程,而不是名称(在我的示例中为&[18]):
ActiveWorkbook.SlicerCaches("Slicer_Course2").VisibleSlicerItemsList = Array("[Course].[Course].&[18]")
Run Code Online (Sandbox Code Playgroud)
我想浏览不同的切片器项目,并且仅根据课程名称选择与我的下拉列表中的用户选择相对应的项目。例如,如果用户选择课程“切片器简介”:
Sub TestSclicer()
Dim i
ActiveWorkbook.SlicerCaches("Slicer_Courses2").ClearManualFilter
For i = 1 To ActiveWorkbook.SlicerCaches("Slicer_Courses2").SlicerItems.Count
If ActiveWorkbook.SlicerCaches("Slicer_Courses2").SlicerItems(i).Name = "Introduction To Slicer" Then
ActiveWorkbook.SlicerCaches("Slicer_Courses2").SlicerItems(i).Selected = True
Else
ActiveWorkbook.SlicerCaches("Slicer_Courses2").SlicerItems(i).Selected = False
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
错误 ActiveWorkbook.SlicerCaches("Slicer_Courses2").SlicerItems.Count提示
应用程序定义的对象定义错误