Сводные таблицы Excel – это мощная функция, позволяющая суммировать и анализировать данные структурированным и динамическим способом. Однако при изменении базовых данных вам необходимо обновить сводные таблицы, чтобы обновить результаты. В этой статье мы рассмотрим пять простых способов обновления всех сводных таблиц в книге Excel с помощью VBA. Итак, приступим!
Метод 1: использование цикла For Each
Один простой подход — просмотреть каждый лист в книге, проверить, содержит ли он какие-либо сводные таблицы, и обновить их, если они найдены. Вот код:
Sub RefreshAllPivotTables()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
End Sub
Метод 2: использование метода обновления PivotCache
Другой способ — напрямую обновить сводный кэш, связанный с каждой сводной таблицей. Этот метод может оказаться быстрее, если в вашей книге большое количество сводных таблиц:
Sub RefreshAllPivotTables()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.PivotCache.Refresh
Next pt
Next ws
End Sub
Метод 3: использование метода Workbook.RefreshAll
Если вы хотите обновить все объекты в книге, включая сводные таблицы, запросы и диаграммы, вы можете использовать метод RefreshAllметода объект рабочей книги:
Sub RefreshAllPivotTables()
ThisWorkbook.RefreshAll
End Sub
Метод 4: использование метода Worksheet.PivotTables.Update
Вы также можете использовать метод Updateколлекции PivotTablesдля обновления всех сводных таблиц в определенной рабочий лист:
Sub RefreshAllPivotTables()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.PivotTables.Update
Next ws
End Sub
Метод 5: использование метода PivotTable.RefreshDataSourceValues
Если вы хотите обновить только значения источников данных сводных таблиц без изменения макета или вычислений, вы можете использовать метод RefreshDataSourceValues:
Sub RefreshAllPivotTables()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshDataSourceValues
Next pt
Next ws
End Sub
В этой статье мы рассмотрели пять простых способов обновления всех сводных таблиц в книге Excel с помощью VBA. Автоматизируя процесс обновления, вы можете сэкономить время и гарантировать, что ваши сводные таблицы всегда отражают самые последние данные. Так что выберите метод, который соответствует вашим потребностям, и попробуйте!
Не забудьте сохранить копию книги перед запуском любого кода VBA, чтобы избежать непредвиденных последствий.