VBA:列出数据透视表的组项

VBA:列出数据透视表的组项,vba,pivot-table,Vba,Pivot Table,如何使用VBA获取数据透视表中的分组项列表 例如,从 我怎样才能得到它 布坎南 7/16/2009 7/23/2009 8/9/2009 等等 谢谢我一直想知道什么是ChildItems,当我看到你的问题时,我想到了 Sub GetGroupedItems() Dim pt As Excel.PivotTable Dim ptField As Excel.PivotField Dim ptItem As Excel.PivotItem Dim ptChildItem As Excel.Piv

如何使用VBA获取数据透视表中的分组项列表

例如,从

我怎样才能得到它

布坎南

  • 7/16/2009
  • 7/23/2009
  • 8/9/2009
  • 等等

谢谢

我一直想知道什么是
ChildItems
,当我看到你的问题时,我想到了

Sub GetGroupedItems()
Dim pt As Excel.PivotTable
Dim ptField As Excel.PivotField
Dim ptItem As Excel.PivotItem
Dim ptChildItem As Excel.PivotItem

Set pt = ActiveSheet.PivotTables(1)
For Each ptField In pt.PivotFields
    For Each ptItem In ptField.PivotItems
        If ptItem.ChildItems.Count > 0 Then
            Debug.Print ptItem.Name
            For Each ptChildItem In ptItem.ChildItems
                Debug.Print ptChildItem.Name
            Next ptChildItem
        End If
    Next ptItem
Next ptField
End Sub

这将在即时窗口中打印任何分组项目及其子项目的名称。

谢谢您的回复!我不知道为什么,但是
ptItem.ChildItems.Count
始终返回0。。。。相反,如果我选中
ptItem.RecordCount
我会得到正确数量的子项,有什么建议吗?谢谢我打赌这是因为在我的测试中,子项是可见的。他们是在你的案件中,还是你检查了未分组字段?我回到电脑前,我在前面的评论中猜测是错误的。无论原始未分组字段是否可见,此代码都适用于我。为了得到更好的答案,你应该进一步充实你的问题,以便有人能重复你所做的。@Douglancy我也遇到了同样的问题-
Count
显示0和
RecordCount
显示正确的数字。因此,上面的代码不打印任何内容,因为
Count
为0。当您说子项对您可见时,您的意思是什么?如中所示,它们是否未被过滤?对不起,如果不清楚的话。如果有帮助的话,我可以给你发送一些我遇到的测试数据。谢谢是否有人发现显示0的
ChildItems