Excel数据透视表DataRange拼图

时间:2013-05-08 01:15:45

标签: excel vba pivot-table

我遇到了Excel PivotTables和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

我以表格形式创建一个简单的数据透视表,它有两个Row项(a,b)和一个Value项(x的和)。然后是PivotField的DataRange a.A

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

这有什么用?但是,如果我添加一个虚拟列项(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

但我真的不想添加一个假人来使这项工作。任何其他方式使这个选择对我有用吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

有趣的问题。我从来没有注意到这一点。

在Excel 2007或更高版本中创建数据透视表时,我要做的第一件事就是在数据透视表选项菜单中选择“经典数据透视表布局”:

enter image description here

我已经做了足够长的时间,以至于忘记了它解决的问题。但我现在知道它解决了这个问题!