首页 > 解决方案 > 如何动态更改数据透视表上的数据透视项?(VBA)

问题描述

如何制作动态数据透视表字段?

目标是用户可以使用单元格中的数据并最终更改数据字段项,而无需按任何按钮(即,如果A1"Hello",它将取消选择数据字段中的所有其他项并选择"Hello"数据字段项)。

从记录我的宏到更改我在数据透视字段中的数据透视项目,我使用以下代码:

Sub Macro2()

    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Treaty].[Market Category].[Market Category]").VisibleItemList = Array("[Treaty].[Market Category].&[5Star Term]")

End Sub

我一直在从 MrExcel 尝试这个解决方案并对其进行修改以适合我自己的模型: https ://www.mrexcel.com/forum/excel-questions/543610-how-create-array-vba.html

Sub Test()
    Dim MyArray As Variant
    MyArray = Application.Transpose(Range("A1").Value)
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Treaty].[MarketCategory].&[Market Category]").VisibleItemsList = MyArray
End Sub

单元格 A1 具有:

[Treaty].[Market Category].&[5Star Term]

它不工作。vba 上的 Locals 部分说MyArray正在接受它,但它说:

运行时错误“1004”:

无法获取 PivotTable 类的 PivotFields 属性。

这是什么意思??

我怎样才能解决这个问题??

我查看了 StackOverflow 上的其他解决方案,但没有得到我想要的。有没有办法使数组动态化?

谢谢!!

标签: arraysvbadynamicpivot-table

解决方案


推荐阅读