Соедините сводные таблицы со слайсером, используя VBA - PullRequest
0 голосов
/ 06 января 2020

Я работаю над панелью мониторинга в Excel.

Я произвел рефакторинг некоторых сводных таблиц, чтобы один срез мог фильтровать все графики, но затем обнаружил, что вы не можете просто изменить источник данных сводная таблица, которая использует срезы совместно с другими таблицами.

У меня есть макрос, который обновляет таблицу данных, а затем изменяет источник данных моих таблиц, чтобы он соответствовал новому диапазону.

Я хочу отключить срезы от таблиц, обновить таблицу, обновить источник данных для таблиц, а затем снова подключить срезы к таблицам.

На последнем этапе; После удаления слайсеров и обновления диапазонов в VBA я не могу снова прикрепить слайсеры к таблицам. Я могу сделать это вручную, щелкнув правой кнопкой мыши на слайсере -> «Соединения сводных таблиц» и установив все флажки.

Я записал макрос этого.

 ActiveWorkbook.SlicerCaches("Slicer_Shift").PivotTables.AddPivotTable ( _
        ActiveSheet.PivotTables("dryer_table"))
 ActiveWorkbook.SlicerCaches("Slicer_Shift").PivotTables.AddPivotTable ( _
        ActiveSheet.PivotTables("operating_table"))
 ActiveWorkbook.SlicerCaches("Slicer_Shift").PivotTables.AddPivotTable ( _
        ActiveSheet.PivotTables("shift_table"))

Это бросок ошибка:

Ошибка времени выполнения '1004': невозможно получить свойство PivotTables класса
Рабочий лист

Мой слайсер называется 'Slicer_Shift', и имена таблиц правильные.

Использование Excel 2010.

1 Ответ

0 голосов
/ 07 января 2020

Хорошо, я получил это на работу. Я исправил это, изменив ActiveSheet на Sheets(<name>).

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