vba 更改 3 个工作簿中的数据透视字段

vba to Change Pivot fields in 3 workbooks

我编写了代码来更改单个工作簿中的数据透视字段。但我有 3 个不同的工作簿,有多个支点。现在我想要在所有 3 个工作簿中进行这些更改。请帮忙。

注意 = 数据透视字段和 sheet 名称在所有数据透视中都相同(在所有 3 个工作簿中


尝试使用此代码更改一个工作簿中的数据透视字段

Sub Account_Names()

Dim a As String Dim ab As String Dim pt As PivotTable

ThisWorkbook.Worksheets("Analysis").Activate

a = Worksheets("Analysis").Cells(1, 10).Value ab = Worksheets("Analysis").Cells(2, 10).Value

For Each pt In ActiveSheet.PivotTables With pt.PivotFields("Root Account") .CurrentPage = a

End With

Next

For Each pt In ActiveSheet.PivotTables With pt.PivotFields("Year") .CurrentPage = ab

End With

Next

End Sub

以下代码假定 3 个工作簿已打开。更改指定工作簿的名称。

Sub Account_Names()

    Dim workbookNames As Variant
    workbookNames = Array("Book1.xlsx", "Book2.xlsx", "Book3.xlsx") 'change the workbook names accordingly
    
    Dim i As Long
    For i = LBound(workbookNames) To UBound(workbookNames)
        
        Dim wb As Workbook
        Set wb = Workbooks(workbookNames(i))
        
        Dim ws As Worksheet
        Set ws = wb.Worksheets("Analysis")
        
        Dim rootAccount As String
        rootAccount = ws.Cells(1, 10).Value
        
        Dim year As String
        year = ws.Cells(2, 10).Value
        
        Dim pt As PivotTable
        For Each pt In ws.PivotTables
            With pt
                With .PivotFields("Root Account")
                    .ClearAllFilters
                    .CurrentPage = rootAccount
                End With
                With .PivotFields("Year")
                    .ClearAllFilters
                    .CurrentPage = year
                End With
            End With
        Next pt
        
    Next i

End Sub