【发布时间】:2017-10-13 21:02:52
【问题描述】:
我有一个函数,其目的是返回一个字符串以表示该函数已完成并检索到所需的值,或者返回一个错误以表示存在问题。
为了看看我是否能做到这一点,我拼凑了以下内容:
Private Function one()
Debug.Print TypeName(two(False))
End Function
Private Function two(b As Boolean) As Variant
Dim e As New ErrObject
If (b) Then
two = True
Else
two = e.number
End If
End Function
现在,two = e.number 失败了,因为您似乎无法以这种方式设置错误号 - 语法不正确。
我可以使用 err.raise 但是我的目的是将整个错误对象传回,因为我可以有一个自定义数字并填写我自己的描述等...
您实际上是如何将 err 对象传回的?你真的能做到吗?这是实现我打算做的最有效的方法吗?
谢谢
【问题讨论】:
-
不应该只是
Err吗?two = Err? -
我认为您在 VBA 中所能做的就是
Raise一个错误 - 您不能直接创建Err对象 cpearson.com/Excel/ErrorHandling.htm。你的ErrObject好像是VB.Net -
@TimWilliams 不,
ErrObject绝对是 VBA:Err是一个 函数,它是VBA.Information模块的成员,它返回一个ErrObject。不能使用New关键字创建ErrObject类的实例。 -
现在我知道了一些新东西!
标签: vba error-handling