Как отфильтровать по полю значения в сводной таблице? - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь отфильтровать поле значения «Сумма ТЕСТА» в моей сводной таблице.

Сообщение об ошибке

Ошибка приложения или объекта

отображается в строке номер 4.

ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of TEST").PivotFilters.Add _
  Type:=xlValueIsGreaterThan, Value1:=30
Private Sub Filter()
    Application.ScreenUpdating = False
    ActiveSheet.PivotTables("PivotTable1").ManualUpdate = True 
    ActiveSheet.PivotTables("PivotTable1").PivotFields(2).ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of TEST").PivotFilters.Add _
      Type:=xlValueIsGreaterThan, Value1:=30
    ActiveSheet.PivotTables("PivotTable1").ManualUpdate = False
    Application.ScreenUpdating = True
End Sub

enter image description here

1 Ответ

0 голосов
/ 13 марта 2020

Чтобы отфильтровать сводную таблицу, вам придется проанализировать сводные элементы, а затем установить для видимости значение false для элементов, которые вы не хотите показывать. Попробуйте следующее:

Sub Pivot_Filtering()
    Dim pf As PivotField
    Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of Test")
    'Clear Out Any Previous Filtering
  pf.ClearAllFilters
  'Enable filtering on multiple items
  pf.EnableMultiplePageItems = True
    For i = 2 To pf.PivotItems.Count
        If pf.PivotItems(i) > 30 Then
            pf.PivotItems(i).Visible = False
        End If
    Next i
End Sub
...