【发布时间】:2011-02-28 18:09:31
【问题描述】:
比较时:
PivotTable.PivotFields("field1").PivotItems
到:
PivotTable.PivotFields("field2").PivotItems
从 VBA 消费时项目的序号位置与屏幕上显示的不匹配。
请注意,在下面的代码中,我已将两个 PivotFields 显式设置为可见(xlColumnField),并将其中一个的位置设置为 1。
在屏幕上,两个 PivotField 中每个 PivotItems 的位置相应地排列(显然)。但是在这种状态下,通过 VBA 检查项目时,每个集合中的序号位置以及 .Position 属性与屏幕上显示的不同。
有没有办法正确访问这些,以便我可以在多个 PivotFields 中的各个 PivotItems 之间找到正确的匹配项? (或者其他方式?)
Sub debugPivotTableFieldData(pt As PivotTable)
Dim aPivotField As PivotField
Dim aPivotItem As PivotItem
Dim iField As Integer
Debug.Print pt.PivotFields("Airport").Orientation
Debug.Print pt.PivotFields("Name").Orientation
pt.PivotFields("Airport").Orientation = XlPivotFieldOrientation.xlColumnField
pt.PivotFields("Name").Orientation = XlPivotFieldOrientation.xlColumnField
pt.PivotFields("Airport").Position = 1
Debug.Print "DEBUG PIVOT TABLE: " & pt.Name
For iField = 1 To pt.PivotFields("Airport").PivotItems.Count
Debug.Print pt.PivotFields("Airport").PivotItems(iField) & " - " & pt.PivotFields("Airport").PivotItems(iField).Position
Next
For iField = 1 To pt.PivotFields("Name").PivotItems.Count
Debug.Print pt.PivotFields("Name").PivotItems(iField) & " - " & pt.PivotFields("Name").PivotItems(iField).Position
Next
For iField = 1 To pt.PivotFields("Airport").PivotItems.Count
Debug.Print pt.PivotFields("Airport").PivotItems(iField) & " - " & pt.PivotFields("Name").PivotItems(iField)
Next
【问题讨论】: