空表时,数据透视表过滤器会引发错误

时间:2014-11-10 21:25:12

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

。我有多个数据透视表。当我打开工作簿时,我强迫excel使用以下选择过滤器:

Sheets("PSD").Select
'Update table 7 Number of PSDs scheduled by Month
    ActiveSheet.PivotTables("PivotTable7").PivotFields("Adhoc").CurrentPage = _
    "No"
    ActiveSheet.PivotTables("PivotTable7").PivotFields("Type").CurrentPage = _
    "PSD Inspection"
'Update table 8 Number of PSDs scheduled by Month
    ActiveSheet.PivotTables("PivotTable8").PivotFields("Adhoc").CurrentPage = _
    "No"
    ActiveSheet.PivotTables("PivotTable8").PivotFields("Type").CurrentPage = _
    "PSD Inspection"

问题是当没有预期的过滤器数据时,我收到错误。

我如何创建一个条件来检查过滤器是否存在以及是否存在,强制过滤器达到我想要的状态,否则跳过它。

1 个答案:

答案 0 :(得分:0)

会得到数据吗? getpivotdata将在" index"的情况下返回错误不存在,或者对于" index"存在但没有数据存在(或总和为0)

而不是在VBA本身中使用getpivotdata,您可能更喜欢使用getpivotdata添加新工作表以及确定所需过滤器的其他公式,然后在VBA中引用此工作表。

如果你正确地构建了这个,那么你可以更改这个新工作表中的规则/公式,以驱动对过滤逻辑的更改,而不必编辑VBA - 这也可以使故障排除更容易。