我该如何更正此vba代码?

时间:2013-03-03 19:44:21

标签: vba range

我还是vba的新手。

我正在尝试创建一个新功能,但它不断给我一个我不期望的输出。

我的代码如下:

Function bonusplanA(a, b, c)

    Dim example As Range
    Set example = Range("a:c")

    Value = Application.WorksheetFunction.CountIf(example, ">=90")
    Value1 = Application.WorksheetFunction.CountIf(example, ">=80")

    If Value = 3 Then
      bonusplanA = "$20,000 bonus"
    Else
      If Value1 = 3 Then
      bonusplanA = "$10,000 bonus"
      Else
        bonusplanA = "NO BONUS"
      End If
    End If

End Function

1 个答案:

答案 0 :(得分:2)

你需要像这样定义你的函数:

Function bonusplanA(a, b, c)

    If a >= 90 And b >= 90 And c >= 90 Then
        bonusplanA = "$20,000 bonus"
    Else
        If a >= 80 And b >= 80 And c >= 80 Then
            bonusplanA = "$10,000 bonus"
        Else
            bonusplanA = "NO BONUS"
        End If
    End If

End Function

您的示例中的问题是Range("a:c")没有提供一系列a,b,c变量;相反,它选择由A,B和C列组成的范围。

您需要直接使用参数abc,而不是Range函数。

否则,逻辑是合理的。 :)