10 методов обновления сводных таблиц в VBA: подробное руководство

Сводные таблицы — это мощные инструменты анализа данных в 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 для успешного выполнения кода.