Вы можете получить все проверенные элементы фильтра OLAP по PivotField.VisibleItemsList
.
Этот массив содержит значения только в том случае, если установлен флажок «Выбрать несколько элементов» и проверены не все элементы, как в вашем примере.
Итак, вы можете начать с этой короткой версии:
Private Sub GetVisibleItemsOfOLAPFilterVersion1()
Dim pt As PivotTable
Dim pf As PivotField
Dim i As Long
Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.PageFields(1)
For i = LBound(pf.VisibleItemsList) To UBound(pf.VisibleItemsList)
Debug.Print pf.VisibleItemsList(i)
Next i
End Sub
Следующая подробная версия показывает, как сначала проверить вышеуказанные условия:
Private Sub GetVisibleItemsOfOLAPFilterVersion2()
Dim pt As PivotTable
Dim cf As CubeField
Dim pf As PivotField
Dim i As Long
Set pt = ActiveSheet.PivotTables(1)
For Each cf In pt.CubeFields
If cf.Orientation = xlPageField Then
If cf.EnableMultiplePageItems And Not cf.AllItemsVisible Then
For Each pf In cf.PivotFields
For i = LBound(pf.VisibleItemsList) To UBound(pf.VisibleItemsList)
Debug.Print pf.VisibleItemsList(i)
Next i
Next pf
End If
End If
Next cf
End Sub