Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在尝试取消选择之前,请检查自动筛选中的元素_Vba_Excel - Fatal编程技术网

Vba 在尝试取消选择之前,请检查自动筛选中的元素

Vba 在尝试取消选择之前,请检查自动筛选中的元素,vba,excel,Vba,Excel,当数据透视表所查看的范围内的数据发生更改时,我希望刷新数据透视表。然后我需要能够从过滤器中取消选择任何空白 我下面的代码就是这样做的,但是如果没有一个空的存在(以“或(blank)的形式),那么它将抛出一个错误。 我想我需要它来检查过滤器中是否存在这些元素,然后再尝试隐藏它们 我如何做到这一点 Dim pt As PivotTable: Set pt = ActiveSheet.PivotTables("BarSummary") pt.RefreshTable With A

当数据透视表所查看的范围内的数据发生更改时,我希望刷新数据透视表。然后我需要能够从过滤器中取消选择任何空白

我下面的代码就是这样做的,但是如果没有一个空的存在(以
(blank)
的形式),那么它将抛出一个错误。 我想我需要它来检查过滤器中是否存在这些元素,然后再尝试隐藏它们

我如何做到这一点

   Dim pt As PivotTable: Set pt = ActiveSheet.PivotTables("BarSummary")
    pt.RefreshTable
    With ActiveSheet.PivotTables("BarSummary").PivotFields("Shape Codes")
       .PivotItems("").Visible = False
       .PivotItems("(blank)").Visible = False
    End With
End If

这种情况下,
错误恢复下一步
最简单:

On Error Resume Next
.PivotItems("").Visible = False
.PivotItems("(blank)").Visible = False
On Error Goto 0

宾果,谢谢。我在别的地方用过这个,但出于某种原因,我从来没有想到过这个。