我是vba新手,所以请多多包涵。 我在Excel VBA宏中遇到的2件困难。 (我正在使用OLAP多维数据集)
(1)我正在尝试遍历切片器中的项目-但不想遍历没有数据的项目。如何使用VBA完成此操作?
我能够遍历切片器中的每个项目-但这不是我想要的。
(2)一旦到达列表的末尾,如何使迭代停止,所以它不会成为永无止境的循环?
这是我的一部分代码:
Dim wb As Workbook
Dim slItem As SlicerItem
Dim slItem2 As SlicerItem
Dim sc3 As SlicerCache
Dim sc3L As SlicerCacheLevel
Set wb = ActiveWorkbook
Set sc3 = wb.SlicerCaches("Slicer_Primary_Account_List_Combo__BI")
Set sc4 = wb.SlicerCaches("Slicer_TM_Hierarchy")
sc3L.CrossFilterType = xlSlicerCrossFilterHideButtonsWithNoData'''新代码行,允许我使用.HasData
> ''' Select the first item within the slicer then iterate through them
>
> ''' ensure the iteration is only done on items with data - Need to
> figure this out! Use the .HasData property
For Each slItem In sc3L.SlicerItems
If slItem.HasData Then ''' This ensures the iteration is only on items with data
sc3.ClearManualFilter
sc3.VisibleSlicerItemsList = Array(slItem.Name)
MsgBox (slItem.Value)
End If
Next