当给定行和列的数据字段为空时,我的循环不起作用。 相关代码如下 -
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”,而不是将违规行设置为零,但都不起作用。
答案 0 :(得分:0)
毫无疑问,因为有一些PvtTbl.GetPivotData(" PRD"," Agent",PivotItem.Name," CT1",&#)的组合34; IB")您的数据透视表中不存在。因此,您需要检查是否返回错误,然后相应地处理它。
那就是说,我觉得你想要通过迭代首先做到这一点似乎很奇怪。为什么不直接检查DataField中的东西是否为零?或者为什么不在相关的工作表单元格中使用GETPIVOTDATA公式?
您能否详细说明您尝试使用此代码实现的目标?