Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / SlicerCaches. Ускорить отбор / 7 сообщений из 7, страница 1 из 1
10.01.2019, 13:41
    #39757866
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
Здравствуйте!

Есть сводная таблица и срез "Дата". В срезе нужно программно отобрать дни текущего месяца. Вот макрос, который выполняет такую задачу.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
    For Each el In Thisworkbook.SlicerCaches("Срез_Дата2").SlicerItems
        If Month(CDate(el.Name)) = Month(Date) And Year(CDate(el.Name)) = Year(Date) Then
            el.Selected = True
        Else
            el.Selected = False
        End If
    Next el


Но выполняется очень долго.

Как можно ускорить?
...
Рейтинг: 0 / 0
10.01.2019, 16:25
    #39758022
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
Такая запись не помогает
Код: vbnet
1.
2.
3.
4.
PT(3).ManualUpdate = True
...
PT(3).ManualUpdate = False
PT(3).ManualUpdate = True
...
Рейтинг: 0 / 0
11.01.2019, 10:43
    #39758308
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
ferzmikk,

Ускорить можно. Операции с манипуляциями данных делать в памяти, а не напрямую в ячейках. При публикации данных обратно в ячейки отключить обновление экрана и автопересчет листа.
...
Рейтинг: 0 / 0
11.01.2019, 11:05
    #39758333
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
iMrTidyОперации с манипуляциями данных делать в памяти, а не напрямую в ячейкахЗдесь речь про срезы(Slicer), а он не завязан на ячейки. И при каждом изменении идет перестроение сводной, поэтому и так долго.
Куда правильнее в этой ситуации использовать стандартный фильтр сводной(он завязан на срезы). Сначала удаляем:
Код: vbnet
1.
ActiveSheet.PivotTables("Сводная таблица").PivotFields("Поле для фильтрации").ClearAllFilters


а потом накатываем нужные.

P.S. ferzmikk, у меня в очередной раз этот вопрос к Вам: Вы когда темы создаете Вы за ними следите вообще? Или создали и фиг с ней? :) В который раз уже замечаю, что обсуждение в некоторых Ваших темах есть, а Вы никак не реагируете на это. Правила хорошего тона вроде как предписывают хоть какой-то ответ давать, если предложили новое решение задачи: помогло-не помогло.
...
Рейтинг: 0 / 0
11.01.2019, 13:05
    #39758404
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
The_PristP.S. ferzmikk, у меня в очередной раз этот вопрос к Вам: Вы когда темы создаете Вы за ними следите вообще? Или создали и фиг с ней? :) В который раз уже замечаю, что обсуждение в некоторых Ваших темах есть, а Вы никак не реагируете на это. Правила хорошего тона вроде как предписывают хоть какой-то ответ давать, если предложили новое решение задачи: помогло-не помогло.
За темой слежу. Созданные темы актуальные для меня. Спасибо за замечание! Учту!
...
Рейтинг: 0 / 0
16.01.2019, 10:40
    #39760159
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
The_PristiMrTidyОперации с манипуляциями данных делать в памяти, а не напрямую в ячейкахЗдесь речь про срезы(Slicer), а он не завязан на ячейки. И при каждом изменении идет перестроение сводной, поэтому и так долго.
Куда правильнее в этой ситуации использовать стандартный фильтр сводной(он завязан на срезы). Сначала удаляем:
Код: vbnet
1.
ActiveSheet.PivotTables("Сводная таблица").PivotFields("Поле для фильтрации").ClearAllFilters


а потом накатываем нужные.
Скорректировал макрос так, что дни выбирает не в срезе, а в фильтре. Потом вставляет срез. Да, так быстрее.

Но обратил внимание, что в фильтре отобраны некоторые элементы, а в срезе выделены все элементы. Пользователи же могут запутаться: раз в срезе выделены все элементы, то подумают, что вся выборка.
...
Рейтинг: 0 / 0
16.01.2019, 13:00
    #39760240
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SlicerCaches. Ускорить отбор
ferzmikkдни выбирает не в срезе, а в фильтре. Потом вставляет срезСначала вставить срез, потом фильтры накатить.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / SlicerCaches. Ускорить отбор / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]