数据透视表过滤器按钮

时间:2019-03-28 12:59:58

标签: excel vba filter pivot-table

我正在处理Excel中的VBA代码,以基于使用按钮在不同数据透视表上的选择来过滤数据透视表(在具有不同数据源的不同工作表上)。

我参加了多个论坛,并根据自己的需要更改了代码,但未能成功将代码连接到我的需求上。我尝试过用于更改数据透视表过滤器和刷新的代码,例如对象和模块。我目前正在从头开始构建代码,但遇到了障碍。有什么帮助!谢谢

Option Explicit


Sub Button1_Click()

Dim ws As Worksheet, ws2 As Worksheet
Dim pvtTable As PivotTable, pvtTable2 As PivotTable
Dim pvtField As PivotField, pvtField2 As PivotField
Dim pvtItem As PivotItem, pvtItem2 As PivotItem
Dim s$, a$

'ws.pvtTable.PvtField
Set ws = ActiveSheet
Set pvtTable = ws.PivotTables("PivotTable1")
Set pvtField = pvtTable.PivotFields("Style")

'ws2.pvtTable2.pvtField2
Set ws2 = Sheets(2)
Set pvtTable2 = ws2.PivotTables("PivotTable2")
Set pvtField2 = pvtTable2.PivotFields("Style")

'Setting the filters - issues here?
'Let s = ws.PivotTables("PivotTable1").pvtField
Let s = pvtField
'Let a = ws2.PivotTables("PivotTable2").pvtField2
Let a = pvtField2
Let a = s

End Sub

我希望能够在一个数据透视表中选择“样式”,然后在单击按钮后使选择内容填充到另一个数据透视表中。

****我已将代码编辑为最​​新代码。我没有任何错误,但是它没有像我想要的那样在第二张纸上进行过滤。一个如何过滤具有不同数据源的不同工作表上的多个数据透视表?****

1 个答案:

答案 0 :(得分:0)

我对枢轴表不是最好的选择,但是为了帮助您自己的将来的项目-您应该将相似的变量放在一起

我也不确定为什么Dim Target as Sheet2时您为什么使用Set ws2 = Sheets(2)

所以请看一下它是否仍然运行?

Option Explicit


Sub Button1_Click()

Dim ws As Worksheet, ws2 As Worksheet
Dim pvtTable As PivotTable, pvtTable2 As PivotTable
Dim pvtField As PivotField, pvtField2 As PivotField
Dim pvtItem As PivotItem, pvtItem2 As PivotItem
Dim s$, a$

'ws.pvtTable.PvtField
Set ws = ActiveSheet
Set pvtTable = ws.PivotTables("PivotTable1")
Set pvtField = pvtTable.PivotFields("Style")

'ws2.pvtTable2.pvtField2
Set ws2 = Sheets(2)
Set pvtTable2 = ws.PivotTables("PivotTable2")
Set pvtField2 = pvtTable.PivotFields("Style")

'Setting the filters - issues here?
Let s = ws.PivotTables("PivotTable1").pvtField
Let a = ws2.PivotTables("PivotTable2").pvtItem2
Let a = s

End Sub