Добрый день!
Создал макрос, который среди прочего выставляет фильтр по одному значению в сликере сводной таблицы.
Файл с персональными данными, поэтому скопировать дословно код или выложить всю таблицу не могу.
В целом, выглядит это так (где "..." порядка 60 раз повторяется SlicerItems с разными значениями = False):
Это работает. На примере выше в итоге после применения макроса в сводной остаются только значения по Ване.
Однако, когда строк с SlicerItems много, макрос после запуска очень долго выполняет фильтрацию, хотя просто в экселе поставить фильтра по конкретному человеку занимает секунду.
Подскажите, пожалуйста, как изменить код, чтоб он работал быстрее?
P.S.
Применял
Проблему в обилии строк в коде, которые очень долго обрабатыаются, это решить не помогло.
Создал макрос, который среди прочего выставляет фильтр по одному значению в сликере сводной таблицы.
Файл с персональными данными, поэтому скопировать дословно код или выложить всю таблицу не могу.
В целом, выглядит это так (где "..." порядка 60 раз повторяется SlicerItems с разными значениями = False):
Код |
---|
With ActiveWorkbook.SlicerCaches("Slicer_DSPV") .SlicerItems("Ваня").Selected = True ... .SlicerItems("Федя").Selected = False .SlicerItems("Степа").Selected = False End With |
Это работает. На примере выше в итоге после применения макроса в сводной остаются только значения по Ване.
Однако, когда строк с SlicerItems много, макрос после запуска очень долго выполняет фильтрацию, хотя просто в экселе поставить фильтра по конкретному человеку занимает секунду.
Подскажите, пожалуйста, как изменить код, чтоб он работал быстрее?
P.S.
Применял
Код |
---|
Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False |
Проблему в обилии строк в коде, которые очень долго обрабатыаются, это решить не помогло.