Как перебрать каждый элемент слайсера, но исключая эти элементы без данных - в VBA? - PullRequest
0 голосов
/ 30 мая 2019

Я новичок VBA, так что терпите меня.2 вещи, с которыми я сталкиваюсь с трудностями в макросе Excel VBA.(Я работаю с кубами 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
...