我有一个模块,可以创建一个数据透视表,选择字段并过滤它们 . 我有一个问题,有一个过滤器 .

我从“客户发布状态”数据透视字段中筛选出状态列表,但是,如果在我运行模块的那天,我的数据中没有这样的状态,它会引发错误

1004:“无法获取PivotField类的PivotItems属性” .

这是可以发生这种情况的代码 .

With ActiveSheet.PivotTables("PivotTable4").PivotFields( _
    "Customer Release Status")
    .PivotItems("Arrived to Destination Port").Visible = False
    .PivotItems("Awaiting pick up from WWP warehouse").Visible = False
    .PivotItems("Completed").Visible = False
    .PivotItems("Culling shortage after rework").Visible = False
    .PivotItems("Delivered").Visible = False
    .PivotItems("Delivered to Sterilization").Visible = False
    .PivotItems("Destroyed").Visible = False
    .PivotItems("FREE SAMPLES").Visible = False
    .PivotItems("Internal Use Only").Visible = False
    .PivotItems("Left Airport Warehouse").Visible = False
    .PivotItems("Left Factory").Visible = False
    .PivotItems("Left Warehouse").Visible = False
    .PivotItems("Liability").Visible = False
    .PivotItems("Picked up from factory").Visible = False
    .PivotItems("Stored in warehouse").Visible = False
End With

到目前为止,我一直在处理它的方式是,当我得到错误时,我去调试,注释掉产生错误的行,然后恢复运行代码,一旦完成,我必须记住回到我的代码取消注释该行 . 当然,这是一种处理它的坏方法,我想构建一些东西来捕获这个错误 .

理想情况下,我希望我的代码要做的是按照我的标准过滤状态,如果找不到特定状态,那么它应该忽略它并检查下一个状态 .

处理它的最佳方法是什么?我希望我可以避免使用循环,因为他们往往需要花费很长时间来遍历我的数据集(大约是 15000 行),但是如果那个's the only way, then I' ll必须这样做的话 . 也许是错误处理程序?这可能是运行时最快的,但我想避免合法的错误 .