我在 Excel 方面非常缺乏经验,并且在编写宏时遇到了问题。无论我是否设置断点并跳过,它都会停止而没有任何错误对话框。
我错过了什么吗?我必须明确打开错误消息吗?
像这样的东西,在一个模块中:
Function Provoke(XYZ As Integer) As Integer
Provoke = XYZ / 0
End Function
该函数用于单元格内的公式中,如下所示
=Provoke(4711)
我怎样才能让它抱怨被零除?
如果从作为 UDF 的工作表调用的函数中发生错误,您将不会看到任何错误消息 - 您只会收到一个 #VALUE 错误返回到单元格
如果您从 VBA 中的 Sub 调用相同的函数,您将看到错误。
如果您希望能够返回更具体的错误消息,则需要进行更多编码。
例如
Function Provoke(XYZ As Integer)
On Error GoTo haveError
Provoke = XYZ / 0
Exit Function
haveError:
'what type of error did we get?
Select Case Err.Number
Case 11: Provoke = CVErr(xlErrDiv0)
Case Else: Provoke = "Error!"
End Select
End Function