引用具有多个行字段的数据透视表的数据范围

时间:2016-11-15 20:13:13

标签: excel vba pivot-table

好的,我引用了一个数据透视表的数据范围,其中列或行中有一个透视字段:

BevPvt.PivotFields("Sum of Amount ").DataRange.Select
For Each deposit1 In BevPvt.PivotFields("Sum of Amount ").DataRange

但是如果我在列或行中有多个数据字段,IE会将两个数据字段移动到行框(例如POS位置和日期)。我想找到匹配的日期和匹配的位置。是将行字段(例如位置)移动到列的唯一解决方案吗?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是使用offset(0,-1)

我关闭了rowfield框中第一个数据字段的小计,然后让我的宏搜索值字段数据范围 - 如果找到vbNullString,则偏移量(0,-1)记录第一个数据字段的名称rowfield position,如果它不是vbNullString,则offset会在第二个rowfield位置给出数据字段的名称。

看起来像这样(删除小计不在这部分代码中)

For Each deposit2 In CHMBAll.PivotFields("Sum of Original Deposit Total").DataRange
If deposit2 = vbNullString Then
lockbox = deposit2.Offset(0, -1).Value
End If
If deposit2 <> vbNullString Then
If deposit2.Interior.Color = 5296274 Then
DepDate = deposit2.Offset(0, -1).Value
For CHMBi = 2 To CHMBLR
If Cells(CHMBi, 5).Value = lockbox Then
If Cells(CHMBi, 3).Value = DepDate Then
Cells(CHMBi, 6).Interior.Color = 5296274
End If
End If
Next CHMBi
End If
End If
Next deposit2