2017-01-13 13 views
0

У меня есть одна таблица данных («Данные») с столбцами A: K вытащили из запроса и Columns L: O вычислили информацию из A: K.Autorefresh multiple pivot tables при запросе и вычислении изменений в листе данных

У меня есть два листа сводной таблицы («PT-Day», «PT-Wk») с двумя отдельными сводными таблицами (оба называются «Сводная таблица5»), которые ссылаются на информацию «Данные».

Подключение к данным установлено для обновления каждые 5 минут. Мне нужны обе сводные таблицы для обновления, когда что-либо в листе данных изменяется.

Я пробовал следующий код на вкладке «Данные».

Private Sub Worksheet_Change(ByVal Target As Range) 
    Worksheets("PT-Day").PivotTables("PivotTable5").PivotCache.Refresh 
    Worksheets("PT-Wk").PivotTables("PivotTable5").PivotCache.Refresh 
End Sub 

И я получаю Подстрочный из ошибки диапазона на линии 02. Я также попробовал новую вкладку данных без вычисляемых столбцов и используя код выше - тот же результат. Помоги пожалуйста?

+0

вам нужно установить «PivotCache» в обновленный источник данных, вы делаете это где-то еще в своем коде? –

+0

@ShaiRado также не работает, чтобы создать обновление при событии, например. когда значение ячейки изменяется на любом конкретном листе? Я не знаком с PivotCache, поэтому приношу свои извинения, если это кажется избыточным или просто неверным. – Cyril

+0

'ThisWorkbook.RefreshAll'. – ManishChristian

ответ

0

Я пробовал это, мои данные были на 1 листе и еще 2 листа имели сводную таблицу. Первая таблица опорных листов была обновлена ​​из-за команды, а затем, в конце концов, второго листа. Посмотрите, работает ли это для вас.

Private Sub Worksheet_Calculate() 

    'If data on this worksheet changes, refresh the pivot table 
    Sheets("Pivot").PivotTables("PivotTable1").RefreshTable 

End Sub