如何动态更改数据透视表上的数据透视表项? (VBA)

时间:2018-07-28 15:20:49

标签: arrays vba dynamic pivot-table

如何创建动态数据透视表字段?

目标是用户可以使用单元格中的数据并最终更改数据字段项而无需按任何键(例如,如果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的“本地人”部分说MyArray正在接听,但它说:

  

运行时错误“ 1004”:

     

无法获取PivotTable类的PivotFields属性。

这是什么意思?

我该如何解决?

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

谢谢!

0 个答案:

没有答案