Фильтрация сводной таблицы Excel с помощью VBA

Я пытался копировать и вставлять решения из Интернета навсегда, чтобы попытаться отфильтровать сводную таблицу в Excel с помощью VBA. Код ниже не работает.

Sub FilterPivotTable()
    Application.ScreenUpdating = False
    ActiveSheet.PivotTables("PivotTable2").ManualUpdate = True
    ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode").CurrentPage = "K123223"
    ActiveSheet.PivotTables("PivotTable2").ManualUpdate = False
    Application.ScreenUpdating = True
End Sub

Я хочу отфильтровать, чтобы увидеть все строки с кодом SavedFamilyCode K123223. Я не хочу видеть другие строки в сводной таблице. Я хочу, чтобы это работало независимо от предыдущих фильтров. Я надеюсь, что вы можете помочь мне с этим. Спасибо!


Основываясь на вашем сообщении, я пытаюсь:

Sub FilterPivotField()
    Dim Field As PivotField
    Field = ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode")
    Value = Range("$A$2")
    Application.ScreenUpdating = False
    With Field
        If .Orientation = xlPageField Then
            .CurrentPage = Value
        ElseIf .Orientation = xlRowField Or .Orientation = xlColumnField Then
            Dim i As Long
            On Error Resume Next ' Needed to avoid getting errors when manipulating fields that were deleted from the data source.
            ' Set first item to Visible to avoid getting no visible items while working
            .PivotItems(1).Visible = True
            For i = 2 To Field.PivotItems.Count
                If .PivotItems(i).Name = Value Then _
                    .PivotItems(i).Visible = True Else _
                    .PivotItems(i).Visible = False
            Next i
            If .PivotItems(1).Name = Value Then _
                .PivotItems(1).Visible = True Else _
                .PivotItems(1).Visible = False
        End If
    End With
    Application.ScreenUpdating = True
End Sub

К сожалению, я получаю ошибку времени выполнения 91: переменная объекта или переменная блока не установлена. Что вызвало эту ошибку?

8
задан Community 9 July 2018 в 19:34
поделиться