Запустить макрос при изменении сводной таблицы - PullRequest
1 голос
/ 28 мая 2019

Есть ли способ определить, когда изменяется сводная таблица, установлены фильтры в VBA?

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

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Попробуйте:

Option Explicit

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

    'Check if is the right pivot changed
    If Target.Name = "PivotTable1" Then
        ' some code here
    End If

End Sub
0 голосов
/ 29 мая 2019

Другой ответ почти элегантен, но событие PivotTableUpdate не вызывается, если некоторые заголовки изменены:

screenshot of pivot table captions

Если вам нужнособытие для любого изменения в вашей сводной таблице, используйте вместо этого в модуле кода вашей таблицы:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.PivotTables(1).TableRange2) Is Nothing Then
        MsgBox "Pivot's TableRange2 Changed"
    End If
End Sub
...