2013-07-23 89 views
1

您好我正在處理更大的Excel UDF,除此之外是比較兩個不同的字符串以查看它們是否不相等。當我檢查我的範圍內的單元格是否與我想要的字符串不同時(在本例中爲「紅色」),則向計數器右側添加一行。當我這樣做時,會引發#value錯誤。Excel UDF IF語句<>字符串引發#值錯誤

有趣的是,如果我做同樣的事情,但只添加等於「紅色」的值,它不會引發錯誤。

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提高,當你將它設置爲<錯誤>,但工作正常當其設定爲=時。

回答

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 

enter image description here