迭代数据透视表列中的项目

时间:2015-09-30 20:12:58

标签: excel vba pivot-table

当给定行和列的数据字段为空时,我的循环不起作用。 相关代码如下 -

For Each PivotItem In PvtTbl.RowFields("Agent").PivotItems
    rw = rw + 1
        If PvtTbl.GetPivotData("PRD", "Agent", PivotItem.Name, "CT1", "IB") = 0 Then
            Worksheets("Sheet1").Cells(16, rw).Value = 0
         Else
            Worksheets("Sheet1").Cells(16, rw).Value = PvtTbl.GetPivotData("PRD", "Agent", PivotItem.Name, "CT1", "IB")
         End If
Next PivotItem

我得到的错误是:

  

运行时错误1004 /“应用程序定义或对象定义的错误”

我尝试过“ISERROR”,而不是将违规行设置为零,但都不起作用。

1 个答案:

答案 0 :(得分:0)

毫无疑问,因为有一些PvtTbl.GetPivotData(" PRD"," Agent",PivotItem.Name," CT1",&#)的组合34; IB")您的数据透视表中不存在。因此,您需要检查是否返回错误,然后相应地处理它。

那就是说,我觉得你想要通过迭代首先做到这一点似乎很奇怪。为什么不直接检查DataField中的东西是否为零?或者为什么不在相关的工作表单元格中使用GETPIVOTDATA公式?

您能否详细说明您尝试使用此代码实现的目标?