Excel VBA - PivotItems返回不可思议的值

时间:2016-10-10 13:53:02

标签: excel vba excel-vba pivot-table visible

在Excel工作簿中,我在工作表上有“静态”数据透视表,它基于另一个工作表的数据。

我正在刷新数据表上的数据(谢谢你队长Obvious!),然后我想显示所有项目,删除空白项目,所以我正在运行抛出所有PivotItems将它们设置为可见,并且,最后,取消选择空白的那个:

i = 1

ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").ClearAllFilters
ThisWorkbook.Sheets("TCD").PivotTables(i).PivotCache.MissingItemsLimit = xlMissingItemsNone
For Each PvI In ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems
    PvI.Visible = True
Next

ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems("(blank)").Visible = False

在我的循环的最后一次发生,在第4个PivotItems上,我有一个错误的执行'1004'(我将它翻译成法语,它可能是我的一些错误,对不起)“不可能定义属性可见PivoItem类,所以我查了几件事:

?ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems.count
 4 

对于x = 1到4:

?ThisWorkbook.Sheets("TCD").PivotTables(i).PivotFields("CODETAT").PivotItems(x)
(blank)
SFT
ACQ
TEP

看起来我的数据透视表中有4个项目,但是

enter image description here

而且,当我查看我的数据时,我只有2个不同的统计数据: enter image description here

那么第四个PivotItems元素来自哪里,我怎样才能获得它? 谢谢。

1 个答案:

答案 0 :(得分:3)

我有一个令人惊讶的问题,你需要检查数据透视表选项:

  • 右键单击数据透视表,
  • 选择Pivot Table options
  • 进入Data标签
  • 查找Retain items deleted from the data source
  • None选择Number of items to retain per field
  • 然后刷新!一切都应该好了! ;)

(那件事让我疯了几个小时!^^)

enter image description here