1

こんにちは私は、2 つの異なる文字列を比較して、それらが等しくないかどうかを確認する以外に、より大きな Excel UDF に取り組んでいます。範囲内のセルが目的の文字列 (この例では「赤」) と等しくないかどうかを確認するときに、カウンターの右に 1 行の値を追加します。これを行うと、#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 に答える