VBA - циклически отфильтрованные данные сводной таблицы - PullRequest
0 голосов
/ 29 марта 2019

Исходное сообщение было удалено, поскольку контекст вопроса изменился.

У меня есть сводная таблица, по которой я пытаюсь отфильтровать, а затем захватить только отфильтрованные данные, однако япохоже, что он не собирает правильные данные фильтра.

Вот исходная таблица:

enter image description here

Сводная таблица:

enter image description here

Применен фильтр:

enter image description here

Сводная таблица:

enter image description here

Нет, когда я запускаю свой код, он неНе фиксируются данные, которые я вижу, которые отфильтрованы, они по-прежнему читают ВСЕ данные для fk_new_component.

Код:

    Sub Results_06_Filter_Pivot_Table(myArray As Variant)

        Set tmpltWkbk = Workbooks("New DB.xlsm")
        Set ws1 = tmpltWkbk.Sheets("Pivot")
        Set PvtTbl = ws1.PivotTables("PivotTable")

'Array of fk_keyword unique values
        myArr = myArray

        Application.ScreenUpdating = False

        PvtTbl.ManualUpdate = True

        Set pvtField = PvtTbl.PivotFields("fk_keyword")

        With pvtField
            .Orientation = xlPageField
            .Position = 1
        End With

        PvtTbl.ManualUpdate = False

        ws1.Activate

        For i = LBound(myArr) To UBound(myArr)

            If i <> 0 Then

                pvtField.ClearAllFilters

                pvtField.CurrentPage = myArr(i)

                With ws1

                    Set compField = PvtTbl.PivotFields("fk_new_component")

                    'For Each PvtItem In PvtTbl.VisibleFields
                    For Each Pi In compField.PivotItems

                        If Pi <> "" And Pi.Visible Then

                            i = i + 1
                            ReDim Preserve arrCompElements(i)
                            arrCompElements(i) = PvtItem.Name

                        End If

                    Next Pi

                End With

            End If

        Next i

        'pvtField.ClearAllFilters

        For Each pvtField In PvtTbl.PageFields
          pvtField.Orientation = xlHidden
        Next pvtField

        Application.ScreenUpdating = True

        PvtTbl.ManualUpdate = False

    End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...