2016-10-10 130 views
1

在Excel工作簿中,我在工作表上具有“静态”数据透视表,该表基于来自另一工作表的数据。Excel VBA - PivotItems返回维特斯值

我刷新了我的数据表中的数据(谢谢队长明显!),然后我想显示所有的项目,豁免空白的,所以我运行抛出所有的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 

在最后一次出现我的循环,四号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

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

那么这第4个PivotItems的元素来自哪里,我该如何获得它? 谢谢。

+2

我有过一个惊人的问题,检查'透视表options'(右键单击表! ),在'数据'选项卡中,您应该找到'保留从数据源中删除的项目',为'每个字段要保留的项目数量'选择'无'。然后刷新所有应该是为了! ;)(这个错误让我疯狂了几个小时!^^) – R3uK

+1

其实它已经到了None,我没有选中所有的东西,选择max,保存,关闭,再次检查,并设置为None,现在它的工作正常... Thx对于小费,我从来没有听说过这个! http://i.stack.imgur.com/oFSOT.jpg – Jaggana

回答

2

我有过一个惊人的问题,您需要在数据透视表选项检查:

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

(那个东西把我惹火了几个小时^^)

enter image description here