首页 > 解决方案 > 使用 VBA 对数据透视表进行多个过滤器

问题描述

我有 VBA 代码通过所选单元格中的值过滤多个数据透视表 - 过滤所选变量。

我将如何更改它以便过滤在不同单元格中定义的另一个变量?

因此,在下面的示例中,两个数据透视表都在单元格 C2:C3 上过滤了“Unique_ID”变量。我还想根据单元格 D2:D3 在两个表中过滤变量“复杂性”。

Private Sub Worksheet_Change(ByVal Target As Range)
'test
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String

Dim x2PTable As PivotTable
Dim x2PFile As PivotField
Dim x2Str As String


On Error Resume Next
If Intersect(Target, Range("c2:c3")) Is Nothing Then Exit Sub

Application.ScreenUpdating = False

'tbl-1
Set xPTable = Worksheets("UI").PivotTables("Days")
Set xPFile = xPTable.PivotFields("Unique_ID")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
If xPFile.CurrentPage = "(All)" Then xPFile.CurrentPage = "No Data Found"

'tbl-2
Set x2PTable = Worksheets("UI").PivotTables("Resource#")
Set x2PFile = x2PTable.PivotFields("Unique_ID")
x2Str = Target.Text
x2PFile.ClearAllFilters
x2PFile.CurrentPage = x2Str
If x2PFile.CurrentPage = "(All)" Then x2PFile.CurrentPage = "No Data Found"


Application.ScreenUpdating = True

End Sub

我在 VBA 方面不是很有经验,只是发现这段代码可以满足我的一半意图!

提前致谢。

标签: excelvbafilterpivot-table

解决方案


推荐阅读