Преобразование всех моих соответствующих комментариев в ответ.
.PivotItems
в вашем коде относится к With ActiveSheet.PivotTables("PivotTable2")
. Он должен ссылаться на поле сводной таблицы. Например,
ActiveSheet.PivotTables("PivotTable2").PivotFields(1).PivotItems.Count
'~~> OR something like
ActiveSheet.PivotTables("PivotTable2").PivotFields("Name").PivotItems.Count
Подробнее об этом можно прочитать в объекте PivotItems (Excel)
Даже если это решение слишком медленное, потребуется мне часами ждать полных данных до l oop через. Есть ли способ отменить выделение всего?
Для более быстрого способа вы можете удалить все фильтры в одном go (без зацикливания), а затем просто добавить соответствующий фильтр, как показано ниже
Dim ws As Worksheet
'~~> Change this to the relevant sheet
Set ws = Sheet1
With ws.PivotTables("PivotTable2").PivotFields("Name")
.ClearAllFilters
.PivotFilters.Add Type:=xlCaptionEquals, _
Value1:="SOME VALUE"
'~~> OR something like
'~~> Value1:= ws.Range("A1").Value
End With
Пробовал ссылаться как на ячейку, так и на прямой текст в VBA. Возможно ли, что значение как-то неверно отформатировано в сводных данных? Как в тексте в моей камере я ссылаюсь на что-то еще в Pivot? - Carlsberg789 24 минуты go
Снимок экрана в действии