你好我正在研究一个更大的Excel UDF,除了比较两个不同的字符串以查看它们是否相等。当我检查我的范围中的单元格是否不等于我想要的字符串(在此示例中为“红色”)时,然后在计数器右侧添加一行值。当我这样做时,会引发#value错误。
有趣的是,如果我做同样的事情,但只添加等于“红色”的值,则不会引发错误。
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
我知道我可以求和(范围) - sumif(“红色”,范围)来得到答案,但我很好奇为什么这个UDF在你将它设置为&lt;&gt;时会引发错误但设置为=时可正常工作。
答案 0 :(得分:0)
函数输入参数是变量。我还添加了一个参数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