Код VBA, который очищает фильтр в сводной таблице при выходе из таблицы - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь очистить фильтр сводной таблицы при выходе из этого листа.

Я погуглил и не нашел ничего, что работает или похоже на то, что я пытаюсь сделать.

Private Sub Worksheet_deactivate()

    Call ClearFilter

End Sub

Sub ClearFilter()

' ClearFilter Macro

    ActiveSheet.PivotTables("PivotTable1").PivotFields( _
        "[DIM Material Master].[Material Group].[Material Group]").ClearAllFilters
End Sub

Когда я запускаю его, я получаю ошибку времени выполнения 1004, Невозможно получить свойство PivotTables класса Worksheet.

1 Ответ

2 голосов
/ 13 июня 2019

Если вы деактивировали лист, он больше не является ActiveSheet.Измените ActiveSheet на ThisWorkbook.Worksheets("yoursheetname") для ссылки на рабочий лист, к которому относится рассматриваемая сводная таблица.

Еще один вариант немного проще:

Private Sub Worksheet_deactivate()

    Me.PivotTables("PivotTable1").PivotFields( _
        "[DIM Material Master].[Material Group].[Material Group]").ClearAllFilters

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...