извлечение значений сводных элементов, для которых было установлено значение true?

#excel #vba #pivot-table

#excel #vba #сводная таблица

Вопрос:

Я записал этот макрос ниже.

 With ActiveSheet.PivotTables("PivotTable2").PivotFields("Date")

    .PivotItems("3/15/2020").Visible = False
    .PivotItems("3/17/2020").Visible = True
    .PivotItems("3/18/2020").Visible = True
    .PivotItems("3/20/2020").Visible = True
End With
  

Есть ли способ получить значения сводных элементов, для которых было установлено значение true? Я хотел бы поместить их в массив для управления моим рабочим листом.

Комментарии:

1. Какие значения? Если вы имеете в виду то, что у вас есть в with, то это жестко запрограммировано, на самом деле «получить» нечего. Я не понимаю

Ответ №1:

Во-первых, вы можете использовать свойство VisibleItems объекта PivotField, чтобы получить коллекцию видимых сводных элементов…

 Dim visiblePivotItems As PivotItems
Set visiblePivotItems = ActiveSheet.PivotTables("PivotTable2").PivotFields("Date").VisibleItems
  

Затем вы можете выполнить цикл по коллекции следующим образом…

 Dim currentPivotItem As PivotItem

For Each currentPivotItem In visiblePivotItems
    Debug.Print currentPivotItem.Caption
Next currentPivotItem
  

Кроме того, вы можете выполнить итерацию по коллекции, используя свойство Item …

 Dim i As Long

With visiblePivotItems
    For i = 1 To .Count
        Debug.Print .Item(i).Caption
    Next i
End With