数据透视表PivotFields.Position返回错误2042

时间:2016-05-26 15:20:03

标签: vba excel-vba excel

我正在使用VBA来捕获数据透视表中的所有区域。代码在

之下
For Each objCubeFld In pvt.PivotFields 'Loop through all fields in PivotTable
Cubefield(i) = objCubeFld
Orient(i) = objCubeFld.Orientation 'Orientation
Pos(i) = objCubeFld.Position 'Position
i = i + 1
Next objCubeFld

但是,我得到了以下错误。

Enumerable#inject(initial, sym)

我知道当Orientation =“3”时,它意味着过滤。删除过滤器后,程序运行正常。任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

当涉及过滤器或Page字段时,这不是.Position。只是不要使用.Position。

  For Each objCubeFld In pvt.PivotFields 'Loop through all fields in PivotTable
    Cubefield(i) = objCubeFld
    Orient(i) = objCubeFld.Orientation 'Orientation
    If objCubeFld.Orientation = "3" Then 'When it is filter
    Pos(i) = 1
    Else
    Pos(i) = objCubeFld.Position 'Position
    End If
    i = i + 1
    Next objCubeFld