我正在设置动态报告,并希望在我更改一个单元格值的同时过滤多个数据透视表。我没有VBA经验,找不到公司内任何可以提供帮助的人。
由于数据透视表是单独的对象,因此我将它们都定义为不同的维度,并将这些维度指向不同的数据透视表,但是用于指示数据透视表过滤器的单元格保持不变。下面是从我的Google搜索修改而来的。原始代码可以很好地更新1个数据透视表。经过无知的修改代码尝试后,我遇到了应用程序定义或对象定义的错误。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("D1:D2")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Dim pt1 As PivotTable
Dim Field1 As PivotField
Dim NewCat1 As String
Set pt = Worksheets("Sheet1").PivotTables("PivotTable1")
Set Field = pt.PivotFields("Code")
NewCat = Worksheets("Sheet1").Range("D1").Value
Set pt1 = Worksheets("Sheet1").PivotTables("Pivotable2")
Set Field1 = pt1.PivotFields("Code")
NewCat1 = Worksheets("Sheet1").Range("D1").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
With pt1
Field1.ClearAllFilters
Field1.CurrentPage = NewCat1
pt1.RefreshTable
End With
End Sub