VBA Macro-PivotTble自动过滤器组合框 - CurretnPage问题

时间:2013-05-10 15:05:37

标签: excel vba combobox pivot-table

我正在创建一个包含多个数据透视表的仪表板,并遇到了一个我似乎无法克服的问题。我有一个主要工作表,其中显示所有数据,直接引用驻留在另一个工作表上的枢轴表。我正在使用组合框来过滤数据透视表中的数据。当我在包含数据透视表的工作表上时,我已经能够使VBA代码适用于宏,但是当我在主页上客户实际上会选择过滤器时,我无法使其工作,我可以告诉问题是.CurrentPage变量,我不知道如何更改它以正确过滤。下面是我的代码,组合框在工作表(“仪表板”)上,而PvtTbls在工作表(“数据透视表”)上。任何人都可以指导我如何使这项工作,我在过去3天没有运气的情况下研究我的头发。

Sub Year_Change()
'
' Year_Change Macro
'
    Worksheets("Pivot Tables").PivotTables("Termination Index").PivotFields("Year").CurrentPage = (Range("I1"))
    Worksheets("Pivot Tables").PivotTables("Quality Index Top").PivotFields("Year").CurrentPage = (Range("I1"))
End Sub

提前感谢您的所有帮助。

1 个答案:

答案 0 :(得分:0)

我试图重现你的问题,因为CurrentPage的“目标值”是一个单元格(即Range(“a1”))而不是组合框。添加“.value”对我有用。

Sub Year_Change()
Dim ws As Worksheet
    Worksheets("Pivot Tables").PivotTables("Pivottable1").PivotFields("Year").CurrentPage = (ActiveSheet.Range("A1").Value)
    Worksheets("Pivot Tables").PivotTables("Pivottable2").PivotFields("Year").CurrentPage = (ActiveSheet.Range("A1").Value)
End Sub

对于你的问题:你能详细说明你正在使用的组合框吗?它是一个适当的activeX控件还是只是对单元格中允许数据的过滤器?