【发布时间】:2016-09-24 16:47:53
【问题描述】:
我正在使用 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
但是,我得到了以下错误。
我知道 Orientation="3" 时,表示过滤。删除过滤器后,程序运行正常。谁能解释一下?
【问题讨论】:
-
过滤器是否在日期字段上?
-
@skkakkar 不。任何字段都会失败,不仅仅是日期。我刚刚测试过。
-
我最近开始学习数据透视表,正如我从网上收集到的那样。 Field.CurrentPage 仅适用于过滤器字段(也称为页面字段)。如果要过滤行/列字段,则必须循环浏览各个项目,如下所示: ~ With Field If .Orientation = xlPageField Then .CurrentPage = Value ElseIf .Orientation = xlRowField Or .Orientation = xlColumnField Then SO Question Reference~
-
@skkakkar 感谢您的回答。我想你是在引用This SO。
-
请分享我的学习或解决方案提示的链接。谢谢