遍历“数据透视”字段返回不存在的值

时间:2019-02-19 10:32:11

标签: excel vba pivot pivot-table

我为每周需要运行的报表创建了一些数据透视表和图表。每周,我需要显示最近20周的数据。因此,枢轴字段(pvtF)上的过滤器需要每周更新。将可见性设置为True或False效果很好。

'Clear Out Any Previous Filtering at this field
pvtF.ClearAllFilters
'Start loop through PivotItems
For Each sKey In pvtF.PivotItems
  If CLng(sKey) >= nDate1 And CLng(sKey) <= nDate2 Then
    ' Date1 <= Key <= Date2, so make item visible
    pvtF.PivotItems(sKey).Visible = True
  Else
    pvtF.PivotItems(sKey).Visible = False
  End If
Next sKey

当我遍历pvtF.PivotItems时,有些值(sKey)不在原始数据集中,也根本不在数据透视表中。当选择了这样一个不存在的值时,设置可见属性将导致错误。 基本上,我要求遍历pvtF中的所有PivotItem,并将Visible-property设置为True或False。我想根据定义,我应该不可能获得不存在的密钥。谁能帮助我进行可能需要执行的检查,以找出导致问题的原因?

我已经刷新了数据透视表,并检查引用是否仍然正确。

1 个答案:

答案 0 :(得分:0)

即使您刷新了表格,也可能仍会记住,但与此同时遗漏了以下项目:

Dim pc As PivotCache
For Each pc In ActiveWorkbook.PivotCaches
    pc.MissingItemsLimit = xlMissingItemsNone
    pc.Refresh
Next pc