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
我编写了代码来更改单个工作簿中的数据透视字段。但我有 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