Excel VBA - фильтрация определенных данных в сводной таблице - PullRequest
0 голосов
/ 20 марта 2019

Я пытался использовать код, который, как мне показалось, помог автору плаката на

Excel VBA - таблица Privot для фильтрации по нескольким критериям

Но я продолжаю получать следующую ошибку: Не удалось получить свойство PIvtoFields класса PIvotTable.

Sub FilterPivotItems()

    Dim PT          As PivotTable
    Dim PTItm       As PivotItem
    Dim FiterArr()  As Variant

    ' use an array to select the items in the pivot filter you want to keep visible
    FiterArr = Array("MC. Santa Clara", "MC. Plaza Américas", "MC. El Frutal")

    ' set the Pivot Table
    Set PT = ActiveSheet.PivotTables("PivotTable4")

    ' loop through all Pivot Items in "Value" Pivot field
    For Each PTItm In PT.PivotFields("Value").PivotItems
        If Not IsError(Application.Match(PTItm.Caption, FiterArr, 0)) Then ' check if current item is not in the filter array
            PTItm.Visible = True
        Else
            PTItm.Visible = False
        End If
    Next PTItm

End Sub

Что я могу сделать?

1 Ответ

0 голосов
/ 20 марта 2019

Прочитав о свойствах класса, я наконец-то получил то, что хотел.

Sub filterpivot()


Dim pi As PivotItem
Dim pt As PivotTable
Dim first As String
Dim second As String
Dim third As String
Dim fourth As String

first = Range("a26").Value
second = Range("a27").Value
third = Range("a28").Value
fourth = Range("a29").Value

Set pt = Worksheets("Lowest Scores").PivotTables("PivotTable4")

    With pt.PivotFields("Nombre conjunto")
        For Each pi In pt.PivotFields("Nombre conjunto").PivotItems
        
        
            If pi.Name = first Or pi.Name = second Or pi.Name = third Or pi.Name = fourth Then
                pi.Visible = True
            Else
                pi.Visible = False
            End If
        Next pi
    End With


End Sub

Это основывает примененный фильтр на определенных значениях ячейки. Мои извинения, если кто-то уже работал над этим, я был на работе и нуждался в ответе.

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