1

我刚刚遇到了一个我以前从未注意到的数据透视表 VBA 问题。当数据透视表有多个数据字段时,引用 PivotItem.DataRange 会返回一个范围,该范围从应有的位置向下移动一行。您可以在下面看到地址偏离了一行,并且选择位于数据透视表下方 - 再次偏离了一行:

在此处输入图像描述

如果数据透视表只有一个数据字段,例如,如果我去掉上面的“总和”,问题就会消失。

我在 SO 上找到了 Macro Marc对此的一个引用,但在网络上没有其他内容。是否有人对此有任何了解,例如,它的一致性、围绕它进行编码的最佳方式等?我可以想出一些方法来检查这个,但是糟糕!

可能的解决方案:

在我非常有限的测试中,PivotFields 似乎没有类似的问题。所以我最好的想法是将数据透视字段的第一行与其第一个数据透视项目的第一行进行比较。但是,我不确定我的“第一”概念是否始终与 Excel 相同。无论如何,我正在考虑这样的事情:

BugCorrection = PivotTable.VisibleFields(1).DataRange.Row - _ 
    PivotTable.VisibleFields(1).VisibleItems(1).DataRange.Row
4

0 回答 0