我有一个创建数据透视表的模块,选择字段并过滤它们。我有一个问题,有一个过滤器。
我从“客户发布状态”数据透视字段中筛选出状态列表,但是,如果在我运行模块的那天,我的数据中没有这样的状态,则会抛出错误
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 行),但如果这是唯一的方法,那么我将不得不做到这一点。 也许是错误处理程序?这可能是运行时最快的,但我想确保只处理这个错误,我不想避免合法的错误。