1

您好,我正在研究一个更大的 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

我知道我可以使用 sum(range) - sumif("Red",range) 来得到答案,但我很好奇为什么这个 UDF 在设置为 <> 时会引发错误,但在设置为 = 时工作正常。

4

1 回答 1

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

在此处输入图像描述

于 2013-07-23T03:52:19.093 回答