使用函数 CVErr 处理错误

问题描述 投票:0回答:1

我使用以下功能。

Function CalculateDouble(Number)
If IsNumeric(Number) Then
    CalculateDouble = Number * 2    ' Return result.
Else
    CalculateDouble = CVErr(2001)    ' Return a user-defined error 
End If    ' number.
End Function

我需要这个函数返回使用定义的错误类型“2001”或任何其他类型,但它没有。

请帮助修复此问题。

提前致谢。

vba error-handling
1个回答
0
投票

您的部分问题是您没有声明函数参数的类型或返回类型。 通过正确设置参数和返回类型,您可以避免需要测试函数内的数字,例如

Public Function CalculateDouble(Number As Double) as Double
    CalculateDouble = Number * 2
End Function

现在,如果不确保提供给函数的值是双精度值,则无法调用该函数。 这会将 IsNumeric 的测试移至函数外部。

Dim myDoubleNo as Double
If IsNumeric(Number) then
   myDoubleNo = CalculateDouble(CDbl(Number))
else
   <Code for when IsNumeric is false goes here>
End if
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.