Excel 使用 VBA 迭代嵌套数据透视表行字段

标签 excel pivot-table vba

我有一个数据透视表,我需要迭代嵌套的 RowField:

Example Pivot Table

如何解析嵌套的 RowField?

到目前为止我的代码是:

Sub PtRead()
    Dim i As Integer, j As Integer
    Dim Sh As Worksheet
    Dim pt As PivotTable
    Dim rngRow As Range

    Set Sh = Sheets("Store")
    Set pt = Sh.PivotTables(1)

    i = 3
    For j = 1 To pt.RowFields(i).PivotItems.Count
        Debug.Print pt.RowFields(i).PivotItems(j)
    Next

End Sub

例如,我需要检索与品牌“AAA”相关的所有嵌套文章代码以及相关的 Nsum 值,例如(这不起作用..):

...    
pt.RowFields(1).PivotItems(1).RowFields(2).PivotItems(j)
...

最佳答案

我认为您想循环浏览枢轴项目。请参阅下面的代码,了解如何继续操作的一些指导。

Sub TryMe()

For Each Pi In ActiveSheet.PivotTables("PivotTable1").PivotFields("DeptHead").PivotItems
    If Pi.Visible Then
        Count = Count + 1
        Range("B" & Count).Value = Pi.Name
        Row = Row + 1
    End If
Next Pi

End Sub

如果您遇到困难,宏录制器会非常有帮助。

关于Excel 使用 VBA 迭代嵌套数据透视表行字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141053/

相关文章:

sql-server - 通过 ADO 检索存储过程输出参数

excel - 计算/汇总一列但排除#N/A

excel - 如何使用appIE.Document.Body.innerHTML

arrays - Redim Preserve 给出 'subscript out of range'

sql - adodb .FIND 问题

.net - 将列索引转换为 Excel 列名称

excel - 如何复制所有工作表中的最后一行数据并将其粘贴到一个工作表中

c# - 旋转 - 使用 LINQ C# 转置 List<List<string>>

excel - 如何计算非静态数据透视表上最大/最小日期之间的差异?

vba - 数据透视表 "RefreshTable"与 "Update"方法