Сводные таблицы — это мощные инструменты анализа данных в Excel, позволяющие пользователям суммировать и анализировать большие наборы данных. Однако при изменении базовых данных в книге крайне важно обновить сводные таблицы, чтобы обеспечить точные и актуальные результаты. В этой статье блога мы рассмотрим различные методы в VBA (Visual Basic для приложений) для программного обновления сводных таблиц. Каждый метод будет сопровождаться примером кода, который поможет вам реализовать их в ваших собственных проектах Excel.
Метод 1: обновить все сводные таблицы в активной книге
Sub RefreshAllPivotTables()
Dim pt As PivotTable
For Each pt In ActiveWorkbook.PivotTables
pt.RefreshTable
Next pt
End Sub
Метод 2. Обновление определенной сводной таблицы по имени
Sub RefreshPivotTableByName(tableName As String)
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(tableName)
pt.RefreshTable
End Sub
Метод 3. Обновление сводной таблицы на определенном листе
Sub RefreshPivotTableOnWorksheet(wsName As String, tableName As String)
Dim ws As Worksheet
Dim pt As PivotTable
Set ws = Worksheets(wsName)
Set pt = ws.PivotTables(tableName)
pt.RefreshTable
End Sub
Метод 4. Обновление всех сводных таблиц на определенном листе
Sub RefreshAllPivotTablesOnWorksheet(wsName As String)
Dim ws As Worksheet
Dim pt As PivotTable
Set ws = Worksheets(wsName)
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
End Sub
Метод 5: обновить все сводные таблицы на всех листах активной книги
Sub RefreshAllPivotTablesInAllWorksheets()
Dim ws As Worksheet
Dim pt As PivotTable
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
End Sub
Метод 6: обновить все сводные таблицы во всех открытых книгах
Sub RefreshAllPivotTablesInAllWorkbooks()
Dim wb As Workbook
Dim ws As Worksheet
Dim pt As PivotTable
For Each wb In Application.Workbooks
For Each ws In wb.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Next wb
End Sub
Метод 7. Обновление сводной таблицы с помощью PivotCache
Sub RefreshPivotTableUsingPivotCache(tableName As String)
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(tableName)
pt.PivotCache.Refresh
End Sub
Метод 8. Обновление всех сводных таблиц с помощью PivotCache
Sub RefreshAllPivotTablesUsingPivotCache()
Dim pt As PivotTable
For Each pt In ActiveWorkbook.PivotTables
pt.PivotCache.Refresh
Next pt
End Sub
Метод 9. Обновление сводной таблицы путем обновления диапазона исходных данных
Sub RefreshPivotTableByUpdatingSourceData(tableName As String, newSourceDataRange As Range)
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(tableName)
pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=newSourceDataRange)
pt.RefreshTable
End Sub
Метод 10. Обновление сводной таблицы с помощью кнопки обновления вручную
Sub RefreshPivotTableWithManualButton(tableName As String)
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(tableName)
pt.ManualUpdate = True
pt.Update
pt.ManualUpdate = False
End Sub
В этой статье мы рассмотрели десять различных методов обновления сводных таблиц с помощью VBA. В зависимости от ваших требований вы можете выбрать наиболее подходящий метод автоматизации процесса обновления книг Excel. Используя VBA, вы можете повысить свою производительность и гарантировать, что ваши сводные таблицы всегда отражают самые последние данные. Поэкспериментируйте с этими методами, настройте их под свои нужды и раскройте весь потенциал сводных таблиц в Excel.
Не забудьте сохранить код VBA и включить макросы в настройках Excel для успешного выполнения кода.