У меня есть книга, где есть лист RawData, и есть 8-9 других листов, которые имеют сводные таблицы, которые читают таблицу из RawData. RawData изменяется ежедневно, т. Е. Может быть больше или меньше строк в таблице RawData.Обновление DataSource сводных таблиц через VBA без создания новых PivotCaches
В настоящее время я вручную обновляю свойство DataSource каждой сводной таблицы на каждом листе, используя функцию ChangeDataSource в Excel. Однако это болезненно. Сканирование в Интернете Я нашел код vba для обновления всех сводных таблиц сразу. Я не вставляю весь код, но он выглядит примерно так.
ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=<RawData-AddressRange>)
Но что делает этот код, оно создает новые опорные кэша для каждой сводной таблицы и увеличивает размер файла. Тем не менее, я не хочу, чтобы размер файла или количество кеш-ключа увеличивался, но просто измените источник данных существующих сводных таблиц/PivotCaches и обновите их.