我正在尝试检查部件中是否存在特定参数,如果它不存在,那么我想跳过我的代码的一小部分 . 这是我当前的代码,可以按预期工作:
Dim partDoc As PartDocument
Set partDoc = CATIA.ActiveDocument
Dim ParamV As Parameter
Set ParamV = partDoc.Part.Parameters.Item("ParName")
Dostuffwith ParamV
现在我想在执行最后两行代码之前添加一个检查,它会变成这样的:
Dim partDoc As PartDocument
Set partDoc = CATIA.ActiveDocument
Dim ParamV As Parameter
If partDoc.Part.Parameters.Item("ParName") Exists
then
Set ParamV = partDoc.Part.Parameters.Item("ParName")
Dostuffwith ParamV
End If
我试过用
On Error goto label1
Set ParamV = partDoc.Part.Parameters.Item("ParName")
Dostuffwith ParamV
label1
但这是不可能的,因为On Error需要以Resume或Resume Next结束 . 在“Dostuffwith ParamV”之后我无法找到使其恢复的方法,它将始终在首先提示错误的代码行中恢复 .
我也试过了
If not partDoc.Part.Parameters.Item("ParName") is nothing
Then
Set ParamV = partDoc.Part.Parameters.Item("ParName")
Dostuffwith ParamV
End If
但这也会产生错误,因为参数ParName不存在 .
我不知道还能尝试什么,请帮忙 .
2 回答
您可以使用
On Error Resume Next
子句,然后检查Err.Number
以查看是否发生了任何错误:此外,您可以创建一个函数来测试并返回参数 .
用法:
您使用
On Error Goto <label>
的方法是正确的 . 但是您需要重置错误处理程序,以便在出现其他错误时不会跳转到标签 . 你可以使用:另一种方法是使用错误处理的resume方法: