#NUM!用户定义函数中的错误

时间:2018-05-22 11:16:53

标签: excel excel-vba vba

我创建了一个名为length的新函数,用于测试字符数和显示错误结果"如果计数大于5。 但是,函数的结果是#NUM!如果测试是5个字符或更少,则显示结果。

有什么问题?

Function length (number as integer)
    If ( Len (CStr (number)) > 5 ) then
        length = "error"
    End if
    If ( Len (Cstr (number)) <6) then
        length = "the count is true"
    End if
End Function

1 个答案:

答案 0 :(得分:6)

由于数据类型的性质,这将发生。更准确地说,您的功能将适用于最高为32,767的值。在此之上,它将返回#NUM,因为number不再适合你强制它的整数。

如果您将number定义为Long数据类型,它将处理最多包括2,147,483,647的值。

有关IntegerLong之间差异的更详细说明,您可以在此帖子上阅读RubberDuck的答案:Why Use Integer Instead of Long?