Я пытаюсь скопировать значения данных сводной таблицы в другой лист, но потому что я делаю фильтрацию в сводной таблице, которая «скрывает» несколько меток строк, когда я перебираю сводные элементы поля сводок в метке строки она повторяется несколько раз больше, чем на самом деле. Чтобы проиллюстрировать мою проблему, вот код, который я использую.
Sub Prob()
Dim Ptable1 as PivotTable
Dim PField as PivotField
Dim PField2 as PivotField
Dim NumOfPItem as Long
Dim PItem as PivotItem
Dim aCell as Range
Set Ptable1 = ActiveSheet.PivotTables("PivotTable1")
With Ptable1.PivotFields("DataCol5")
.CurrentPage = "12/2/2018"
End With
PField = Ptable1.PivotFields("DataCol1")
NumOfPItem = PField.PivotItems.Count
For each PItem in PField.PivotItems
'Some code to get a cell reference in another worksheet
'and then some code to copy the value from the pivot table to cells.
aCell.Offset(0,1).Value = PField2.PivotItems("XX01").DataRange.Cells(PItem.Position,1)
Next PItem
End Sub
Я только что приготовил что-то простое, чтобы оно охватило основную проблему, с которой я столкнулся.

Нефильтрованная сводная таблица:

Полевые мероприятия:

Это сводная таблица после ее фильтрации.

Я пробовал циклически проходить по элементам сводки, которые были видны, используя свойство PivotItems.Visible
, но все элементы были видны, следовательно, проходили циклически по всем имеющимся элементам сводки. Ведущий к моему следующему скриншоту.

Как видно, все элементы выбираются таким образом, что при циклическом просмотре всех «видимых» элементов сводки из поля сводки он будет проходить через нее 5 раз, поскольку имеется 5 различных элементов. Тем не менее, в этом примере, после того, как я выполню некоторую фильтрацию, у меня останется всего одна метка строки, поэтому она должна зацикливаться только один раз для того, что присутствует в сводной таблице. Что я тут не так делаю?