【发布时间】:2019-06-21 16:53:08
【问题描述】:
我编写了一个函数,它根据输入单元格生成一个“分数”(1,0,-1),该单元格应该包含一个数字。但是,有时输入字段可能不是数字,然后函数应该返回输出“0”。
Function ScoreRoE(RoE_Field As Range, goodval As Range, badval As Range)
Dim RoE As Double, result As Double
RoE = RoE_Field.Value
If IsNumeric(RoE_Field.Value) = False Then
result = "0"
Else:
If RoE >= goodval.Value Then
result = "1"
ElseIf RoE <= badval.Value Then
result = "-1"
Else:
result = "0"
End If
End If
ScoreRoE = result
End Function
当输入单元格是数字时,函数可以正常工作。但是,如果不是,则不会,只会返回错误“#VALUE!”
提前非常感谢!
【问题讨论】:
-
在为 ROE 分配初始值之前进行数字测试。否则,您可能会将一个字符串分配给一个双精度数,而那里的事情看起来并不乐观。
标签: excel vba excel-formula isnumeric