使用VBA访问数据透视表时出错

时间:2013-09-04 11:32:00

标签: excel-vba pivot-table vba excel

我在Excel中有一个如下所示的数据透视表:

Account                e-mail   Sum of Price    Sum of Billing Price
Customer Z             blah@gmail.com       30            33.75
Customer Z Total                            30            33.75
Customer Y             blah@gmail.com       10            10.5
Customer Y Total                            10            10.5
Grand Total                                 40              44.25

我有以下VBA代码:

For j = 2 To pt.RowFields(1).PivotItems.Count
    Sheets("Configuration").Range("j2").Value = Sheets("Configuration").Range("j2").Value + 1

    Client = pt.RowFields("Account").PivotItems(j)
    sum = pt.GetPivotData("Sum Of Billing Price", "Account", Client)
    net = pt.GetPivotData("Sum Of Price", "Account", Client)
    email = pt.RowFields("e-mail").PivotItems(j)
    ...

当我运行代码时,在将值分配给电子邮件时收到错误:Unable To Get PivotItems Property Of PivotField Class。将值分配给客户端按预期工作。我也尝试使用索引号,结果相同。

2 个答案:

答案 0 :(得分:0)

看起来你并不是每一行都有电子邮件。您可能希望在条件语句中处理此问题。

答案 1 :(得分:0)

此问题原来是VBA无法处理重复的电子邮件地址。用一个字符更改其中一个电子邮件地址,它可以正常工作。