我有一个用户定义的函数,它将外部插件作为包装器调用并返回操作结果。
它在很大程度上起作用,但是当外部库的错误回来时,它有时反映为#ERROR! BLAH BLAH BLAH等。
出于审美原因,我试图找出一种方法来向调用函数的单元格中添加注释,然后返回“ - ”或某些指示性字符。
我似乎找不到找到调用单元格引用的方法。
我希望有类似的内容:
If VarType(ret) = vbString And InStr("ret", "#ERROR!") > 0 Then
<insert comment into Caller>
End If
有没有人有机会这样做?
谢谢!
答案 0 :(得分:2)
使用Application.Caller
:
Function WrapError(ret As Variant) As Variant
Dim CatchErr As Boolean
If VarType(ret) = vbString Then
If InStr(ret, "#ERROR!") = 1 Then
CatchErr = True
End If
End If
If CatchErr Then
WrapError = [#VALUE!]
Application.Caller.AddComment ret
Else
WrapError = ret
If Not Application.Caller.Comment Is Nothing Then
Application.Caller.Comment.Delete
End If
End If
End Function