我遇到了 Excel 数据透视表和 DataRange 行为的难题。当没有 Column 字段时,它似乎无法按预期工作。我想从 Row 项目中选择与一个特定 PivotField 关联的所有数据单元格,我该怎么做?
假设我有以下数据表:
a b x y z
A A 1 9 0
A B 2 10 0
A C 3 11 0
A D 4 12 0
B A 5 13 0
B B 6 14 0
B C 7 15 0
B D 8 16 0
我以表格形式创建了一个简单的数据透视表,其中包含两个行项(a,b)和一个值项(x 的总和)。然后是 PivotField aA 的 DataRange
ActiveWorkbook.ActiveSheet.PivotTables(1).PivotFields("a").PivotItems("A").DataRange.Select
选择以下单元格(标有 Asterix):
a b Sum of x
A A *1
B *2
C *3
D *4
B A 5
B 6
C 7
D 8
伟大的!但奇怪的地方来了。将另一个值项 (y) 添加到数据透视表时,相同的代码会选择以下单元格:
a b Sum of x Sum of y
A A 1 9
B *2 10
C *3 11
D *4 12
B A *5 13
B 6 14
C 7 15
D 8 16
这有什么意义?但是,如果我添加一个虚拟 Column 项目 (z),那么结果就是我在前一个场景中所期望的:
z Values
0
a b Sum of x Sum of y
A A *1 *9
B *2 *10
C *3 *11
D *4 *12
B A 5 13
B 6 14
C 7 15
D 8 16
但我真的不想添加一个假人来完成这项工作。还有其他方法可以使此选择对我有用吗?
提前致谢!