Во-первых, вам нужно перейти в Инструменты> Параметры и включить Требуется объявление переменных.Это добавит Option Explicit в начало любого нового модуля (вам нужно будет добавить его самостоятельно в любой ранее существующий модуль).
Это заставит вас объявить mWS, который должен быть рабочим листом.Класс по команде Set.Это вызовет ошибку «Метод или элемент данных не найден» при попытке запустить код.
Это потому, что SlicerCaches - это свойство класса Workbook, а не Worksheet (как описано здесь: https://docs.microsoft.com/en-us/office/vba/api/excel.slicercache)
. В этом случае мы можем удалить все ссылки на mWS и просто использовать ThisWorkbook.это говорит о том, что он будет проходить по всем слайсерам в текущей рабочей книге, поэтому вам может потребоваться дополнительная копка, если вы хотите ограничить их только одним листом.
Option Explicit
Sub Clear_all_filters()
Dim cache As SlicerCache
For Each cache In ThisWorkbook.SlicerCaches
cache.ClearManualFilter
Next cache
End Sub