#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