【发布时间】:2018-10-13 12:44:31
【问题描述】:
我有一个 Excel OLAP 数据透视表,上面有一个过滤器。过滤器是分层的,您可以向下钻取几个级别以查看您想要查看的内容。
我正在尝试使用 VBA 过滤到特定级别,然后遍历该级别的所有子项以执行其他操作。我的问题是弄清楚如何访问该子项列表。我可以过滤到我需要的级别,但这就是事情变得棘手的地方。
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Accounts].[Business Bankers].[Cost Centre Code5]").VisibleItemsList = Array( _
"[Accounts].[Business Bankers].[Cost Centre Code5].&[" & AreaArr(i, 2) & "]")
For Each pi2 In ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Accounts].[Business Bankers].[Cost Centre Code6]").PivotItems
MsgBox pi2.Caption
MsgBox pi2.Value
MsgBox Right(pi2.Caption, Len(pi2.Caption) - 11)
Worksheets("Town").Copy ActiveSheet.Name = Right(pi2.Caption, Len(pi2.Caption) - 11)
Next
对于每个循环都不起作用。我试图弄清楚如何遍历成本中心代码 5 存在的所有子项目。
谢谢!
【问题讨论】:
-
我会将这个
ActiveSheet.PivotTables("PivotTable1").PivotFields( _ "[Accounts].[Business Bankers].[Cost Centre Code6]")分配给variant,在分配之后放置一个断点,然后使用监视窗口探索对象并查看PivotItems成员中的确切内容