Подключение сводных таблиц к слайсеру с помощью VBA

Я работаю над дашбордом в 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": невозможно получить свойство сводных таблиц
класса Worksheet.

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

Используя Excel 2010.


person espionn    schedule 06.01.2020    source источник


Ответы (1)


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

person espionn    schedule 07.01.2020