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

#excel #vba #pivot-table

Вопрос:

Я пытаюсь отфильтровать свою сводную таблицу на основе значения ячейки; всякий раз, когда ячейка изменяется, сводная таблица будет обновляться соответствующим образом, ниже приведен код, введенный на листе, на котором есть сводная таблица, проблема в том, что макрос успешно обновляет фильтр, когда я изменяю значение ячейки, но он продолжает зацикливаться до сбоя excel

 Private Sub Worksheet_Change(ByVal Target As Range)
Dim PT As PivotTable
Dim PF As PivotField

If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
Set PT = Worksheets("Sheet8").PivotTables("Test1")
Set PF = PT.PivotFields("disbursal date")
Filter_cell = Range("C1").Value
PF.CurrentPage.Name = Filter_cell
End Sub
 

введите описание изображения здесь

Комментарии:

1. Скорее всего, это связано с действием в вашем коде, вызывающим другое Worksheet_Change событие, и снова, и снова, и снова.. Вставьте Application.EnableEvents = False в начале кода и Application.EnableEvents = True в конце, чтобы он выполнялся только один раз.

2. @Raymond wu спасибо тебе!! сейчас это работает идеально.