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

Вот моя установка:

Лист «данные» представляет собой (форматированную) таблицу.

Лист «тире» - это сводная таблица, основанная на «данных» листа и множестве срезов.

Лист «№» - это а) сводная таблица на основе «данных», отображающая только один номер (количество рабочих).

Лист «№» - это б) форматированная таблица, в которой я использую «единичный номер» для расчета смен в неделю в течение 52 недель.

Лист «№» - это в) сводная таблица «Смен в неделю» («ПИВныКИТ»).

Я хочу иметь возможность выбирать данные из срезов на листе «тире» и видеть данные в таблице «смен в неделю» при изменении номера листа (я беру график из этой таблицы, который я показываю на листе «тире» "). Поскольку сводная таблица не обновляется автоматически при изменении фоновых данных, я открыл свой vba-редактор. Здесь я выбрал «Объекты Microsoft Excel» и лист «nr» и ввел следующий vba-код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) PivotTables("PIVnyKIT").RefreshTable End Sub

Но по какой-то странной причине не работает ... Все значения обновляются, как должны, но сводная таблица «PIVnyKIT» остается неизменной. Так будет до тех пор, пока я не выберу (щелкну) случайную ячейку на листе «nr». Потом вдруг обновится "ПИВныКИТ".

Я провел сомнительное тестирование, и кажется, что этот способ обновления сводной таблицы отлично работает, когда я вношу изменения непосредственно в таблицу данных (и нажимаю Enter). Но не тогда, когда таблица данных обновляется на основе формул и выборок срезов, сделанных на другом листе ...

Кто-нибудь знает, как заставить это работать? Возможно другой способ сделать это?

1
0
1 211
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пытаться:

Private Sub Worksheet_Change(ByVal Target As Range)

   Application.EnableEvents = False
   ThisWorkbook.RefreshAll
   Application.EnableEvents = True

End Sub

Все эти часы я размышлял ... и решение было таким простым ... :-)) Большое спасибо за помощь.

kit99 31.10.2018 12:35

Другие вопросы по теме