Ми не пропонуємо рядовим користувачам використовувати VBA для створення зведених таблиць. Мета цієї статті полягає в тому, щоб нагадати вам про те, що зведені таблиці можна (і потрібно) використовувати як засіб отримання остаточних результатів. Можете застосувати зведену таблицю для підведення підсумків по набору даних, а потім використовувати ці підсумки в інших розрахунках.
Після визначення кеша зведеної таблиці використовуйте метод СrеatePivotTable для створення порожній зведеної таблиці на основі виділеного раніше кеша.
У методі CreatePivotTable ви вказуєте розташування вихідних даних і (не обов'язково) визначаєте ім'я таблиці з дещо дивним видом. Після виконання цього рядка коду ви отримаєте порожню зведену таблицю. Якщо в області списку полів зведеної таблиці був встановлений прапорець Відкласти оновлення макета (Defer Layout Update), то Excel не стане знову обчислювати зведену таблицю після перетягування в таблицю кожного поля. За замовчуванням програма обчислює зведену таблицю після виконання кожного етапу побудови макета таблиці. Таким чином, зведена таблиця буде обчислюватися багато разів, поки не буде отримано підсумковий результат.
Щоб прискорити виконання коду, тимчасово вимкніть обчислення зведеної таблиці з допомогою властивості ManualUpdate.
Тепер можна виконувати всі операції по компоновці зведеної таблиці.
У методі .AddFields вказується одне або кілька полів, які повинні знаходитися в області рядків, стовпців або сторінок зведеної таблиці. Параметр RowFields дозволяє визначати поля, які додані в область заголовків рядків списку полів зведеної таблиці. Параметр ColumnFields відповідає області заголовків стовпців, а параметр PageFields - області фільтрів звіту.
Наступний програмний код представляє зведену таблицю з двома полями в області заголовків рядків і одним полем в області заголовків стовпців.
Якщо в одну з областей зведеної таблиці було додано єдине поле, наприклад поле Регіон в області стовпців зведеної таблиці, ім'я поля полягає в лапки. Якщо додаються два або більше полів, список полів включають до складу функції масиву. Незважаючи на те що поля рядків, стовпців і сторінок в зведеній таблиці можуть оброблятися за допомогою методу .AddFields, для додавання полів в область даних краще скористатися кодом, який буде описаний в наступній статті.