Function Div(a As Double, b As Double) As Double On Error GoTo ErrorHandler Div = a / b Exit Function ErrorHandler: If Err.Number = 11 Then MsgBox "除数不能为零。" Div = 0 Else MsgBox "发生了未知错误:" & Err.Description End If End Function
在上面的代码中,我们首先用 On Error GoTo ErrorHandler 设置错误处理标签。然后执行除法操作,并使用 Exit Function 退出函数。如果除数为零,则会触发错误处理,跳转到 ErrorHandler 标签处。在错误处理中,我们首先判断错误编号是否为11,如果是,则说明是除以零的错误,我们输出一条错误信息并返回0。如果不是,则说明是其他未知错误,我们输出错误描述信息。最后,我们使用 End Function 结束函数。
可以通过以下代码测试上面的函数:
Sub Test() Dim a As Double, b As Double a = 10 b = 0 MsgBox Div(a, b) End Sub
在上面的代码中,我们首先定义了两个变量 a 和 b,并将 b 赋值为0。然后调用了 Div 函数,并将结果输出到消息框中。由于除数为零,函数将返回0,并输出一条错误信息。