Добрый день, уважаемые форумчане. Потребовалось мне в моем коде делать определенные действия, при изменении данных на листе (а именно данных фильтра сводной). Сделал через
Код |
---|
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 не принимает.
Можно ли в коде отследить изменение одной таблицы?