Цей підручник покаже, як оновити зведену таблицю або всі зведені таблиці за допомогою VBA.
Зведені таблиці - це надзвичайно потужний інструмент даних Excel. Зведені таблиці дозволяють нам аналізувати та інтерпретувати великі обсяги даних шляхом групування та узагальнення полів та рядків.
Коли ми створюємо зведену таблицю, дані зберігаються у так званому кеші зведеної таблиці. Тому дані зберігаються в кеш -пам'яті ПК, що прискорює зведену таблицю.
Якщо джерело даних зведеної таблиці оновлено, сама зведена таблиця не оновлюється. Користувачу в Excel потрібно натиснути на Оновити все на вкладці Дані на стрічці, щоб оновити вихідні дані зведеної таблиці.
Крім того, ми можемо писати макроси у VBA, які оновлюватимуть дані для нас!
Оновіть усі підключення до даних
Найпростіший метод оновлення даних - це використання VBA для імітації того, що Оновити все кнопка робить на стрічці.
123 | Sub RefreshConnections ()ActiveWorkbook.RefreshAllEnd Sub |
Цей метод оновить усі підключення до будь -яких даних у книзі, які у вас є активними. Він також не просто оновить одну зведену таблицю, але й оновить кілька зведених таблиць, якщо у вас є кілька підключених до різних наборів даних.
Оновіть усі зведені таблиці
Щоб оновити лише зведені таблиці в нашій книзі, але виключити будь -які інші з'єднання даних, ми можемо використовувати метод під назвою RefreshTable.
Якщо у нашій книзі є кілька зведених таблиць, нам потрібно буде повторити всі зведені таблиці, щоб оновити їх усі. Для цього спочатку ми оголошуємо змінну зведеної таблиці, а потім створюємо для кожного циклу, щоб прокрутити всі зведені таблиці в активній книзі.
123456 | Sub RefreshPivotsOnly ()Затемнити tblPivot як зведену таблицюДля кожного tblPivot в ActiveWorkbook.PivotTablestblPivot.RefreshTableДалі tblPivotEnd Sub |
Ми можемо використовувати подібний макрос, щоб оновити зведені таблиці в нашій Активний аркуш а не весь робочий зошит. Потім ми прокручуємо зведені таблиці в ActiveSheet а не ActiveWorkbook.
123456 | Sub RefreshActiveSheetPivotsOnly ()Затемнити tblPivot як зведену таблицюДля кожного tblPivot в ActiveSheet.PivotTablestblPivot.RefreshTableДалі tblPivotEnd Sub |
Цей макрос був би найбільш корисним, якби у нас був легкий доступ до нього на нашому ActiveSheet. Для цього ми можемо створити кнопку на аркуші для запуску макросу.
Оновіть одну зведену таблицю
Якщо ми просто хочемо оновити зведену таблицю, над якою ми працюємо, а не всі інші зведені таблиці у книзі, нам потрібно визначити конкретну зведену таблицю. Це, звичайно, поки ви знаєте назву зведеної таблиці - у цьому випадку Зведена таблиця1.
123 | Додатковий RefreshOneTableActiveSheet.PivotTables ("Зведена таблиця1"). RefreshTableEnd Sub |
Оновлення кешу зведеної таблиці
Якщо у нашій книзі є кілька зведених таблиць, але всі вони використовують однакові дані, ми можемо оновити кеш зведеної таблиці, а не оновити фактичну зведену таблицю. Після цього оновлення кешу автоматично оновить усі зведені таблиці, які використовують дані, що містяться в кеші.
123456 | Sub RefreshCache ()Затемнити chPivot як зведений кешДля кожного chPivot в ActiveWorkbook.PivotCacheschPivot.ОновитиДалі chPivotEnd Sub |