我正在尝试使用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'的标签列表。有人能指出我正确的方向吗?
答案 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进行编程的非常有用的参考。