查找数据透视表行字段的子集

时间:2012-08-16 16:59:57

标签: excel vba pivot-table

我正在尝试使用VBA从数据透视表中提取和操作数据。 我的数据透视表有三个行标签(D_Campaign,D_TL,D_Agent_Name)。

使用

For Each pt1 In pt.RowFields("D_Agent_Name").PivotItems
    Debug.Print pt1.Name
Next pt1

我可以获得'D_Agent_Name'中所有标签的列表。但是,我想要的是'D_Agent_Name'中给定值'D_TL'的标签列表。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我认为@gimp可能更适合处理源数据,但这里有一些对我有用的东西:

Sub PrintTLValues(AgentName As String)
Dim pt As Excel.PivotTable
Dim rfTL As Excel.PivotField
Dim rfAN As Excel.PivotField
Dim cell As Excel.Range

Set pt = ThisWorkbook.Worksheets(1).PivotTables(1)
Set rfAN = pt.RowFields("D_Agent_Name")
Set rfTL = pt.RowFields("D_TL")
For Each cell In Intersect(pt.DataBodyRange.EntireRow, rfAN.DataRange)
    If cell.Value = AgentName Then
        Debug.Print Intersect(cell.EntireRow, rfTL.DataRange).Value
    End If
Next cell
End Sub

这样称呼:

GetTLValues "Michael"

我喜欢编程数据透视表,我的经验是,通常有多种方法可以对数据透视表进行处理。对于在Jon Peltier网站上透视表范围can be found进行编程的非常有用的参考。