需要错误处理程序或解决方法 - VBA错误1004:无法获取PivotField类的PivotItems属性

时间:2016-12-22 18:16:59

标签: excel vba pivot-table

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

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

  

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 行),但如果这是唯一的方法,那么我将不得不做到这一点。 也许是错误处理程序?这可能是运行时最快的,但我想确保只处理这个错误,我不想避免合法的错误。

0 个答案:

没有答案