CubeField?在数据透视表上设置过滤器值

时间:2014-10-27 19:55:42

标签: excel vba pivot-table

我有一个包含多个宏的excel文件。在此文件中有一个数据透视表,其中包含名为" Customer"的列,其中包含多个元素(数千个)。我想知道的是,有没有什么有效的方法可以将此列的过滤器设置为特定值?

我问的原因是因为电子表格会要求用户选择一些存储在数组中的客户,我想获取此数组中的值并相应地过滤数据透视表。

我能够通过将数据透视表循环遍历所有项目,使它们visible = false,然后制作被选中的visible = true来完成此操作。但是,这种方法的问题在于它需要花费很多时间来处理。

我在使用CubeField选项的网络中看到了一些示例,但是,我不确定如何使用它?语法有点复杂,我尝试了以下内容,它给了我一个错误:

Worksheets("Analysis").PivotTables("PivotTable1").PivotFields("Supplier_Code").ClearAllFilters
Worksheets("Analysis").PivotTables("PivotTable1").PivotFields("Supplier_Code").CubeField.EnableMultiplePageItems = True
Set pt = Worksheets("Analysis").PivotTables("PivotTable1")
With PT
    pt.PivotFields("[PivotTable1].[Supplier_Code]").VisibleItemsList = Array("[PivotTable1].[Supplier_Code].&[106214]", "[PivotTable1].[Supplier_Code].&[101160]") ' ===> 

这里我没有使用数组值,只是尝试直接设置客户,1个供应商代码是106214,另一个是101160。

任何有助于我朝着正确方向前进的帮助都将受到高度赞赏。此外,请注意我不打算将过滤器设置为仅1项,我能够毫无问题地执行此操作,此处的问题是一次选择多个值,而不循环尽可能所有可能的值地选择。

1 个答案:

答案 0 :(得分:1)

选择数据透视表后,在顶部菜单中,转到"数据透视表工具,"然后选择"然后选择" Insert Slicer"来自功能区。此功能可以满足您的需求 - 让您轻松选择过滤器(一次一个或多个),并查看数据透视表的不同结果。