Excel UDF IF 语句 <> 字符串引发 #Value 错误
Posted
技术标签:
【中文标题】Excel UDF IF 语句 <> 字符串引发 #Value 错误【英文标题】:Excel UDF IF Statement <> String Raises #Value Error 【发布时间】:2013-07-23 03:11:37 【问题描述】:您好,我正在处理一个更大的 Excel UDF,除了它正在比较两个不同的字符串以查看它们是否不相等。当我检查范围内的单元格是否不等于我想要的字符串(在本例中为“红色”)时,然后在计数器右侧添加一个值。当我这样做时,它会引发 #value 错误。
有趣的是,如果我做同样的事情但只添加等于“Red”的值,它不会引发错误。
Function SUM_IF_NOT_RED(Creiteria_Rnage As Range, Sum_range As Integer) as Double
Dim counter As Double
Dim Cell As Range
For Each Cell In Creiteria_Rnage .Cells
If (Cell.Value <> "Red") Then
counter = counter + Cell.Offset(0, Sum_range).Value
End If
Next Cell
SUM_IF_NOT_RED = counter
End Function
我知道我可以通过 sum(range) - sumif("Red",range) 得到答案,但我很好奇为什么这个 UDF 在设置为 时会引发错误,但在设置为=。
【问题讨论】:
【参考方案1】:函数输入参数是变量。我还包含了一个参数 col,它应该是整数,它是标准列与我们要从中选择数据的列之间的差异。
Function SUM_IF_NOT_RED(Creiteria_Range, col) As Double
Dim counter As Double
Dim Cell As Range
For Each Cell In Creiteria_Range.Cells
If (Cell.Value <> "Red") Then
counter = counter + Cell.Offset(0, col)
End If
Next Cell
SUM_IF_NOT_RED = counter
End Function
【讨论】:
以上是关于Excel UDF IF 语句 <> 字符串引发 #Value 错误的主要内容,如果未能解决你的问题,请参考以下文章