Страницы: 1
RSS
Отследить изменение определенной сводной таблицы
 
Добрый день, уважаемые форумчане. Потребовалось мне в моем коде делать определенные действия, при изменении данных на листе (а именно данных фильтра сводной). Сделал через
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target
        If Not Intersect(cell, Range("A1:A5")) Is Nothing Then
            'сам код действия
        End If
    Next cell

End Sub
Но в итоге, поскольку из-за этого меняются прочие данные, то каждое изменение влечет за собой по новой запуск процедуры. Конструкция
Код
If Not Intersect(cell, Range("A1:A5")) Is Nothing Then
конечно спасает, но зависание документа видны.
Сам вопрос, можно ли привязать данные к изменению данных сводной, возможно немного разгонит операции. Но там проблема что на листе несколько сводных. Попробовал сделать что-то вроде
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    For Each PivotTable In Target
        If Not intercect(PivotTable, "BALANCE1") Is Nothing Then ' "BALANCE1" — это название сводной
        End If
    Next PivotTable
End Sub
Но в таком виде конструкцию If Not не принимает.
Можно ли в коде отследить изменение одной таблицы?
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
       Application.EnableEvents = False
'сам код действия
   Application.EnableEvents =True
 
Спасибо. Прогуглил эту процедуру. В моем случае как раз поможет
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
Страницы: 1
Наверх