我还是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
答案 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列组成的范围。
您需要直接使用参数a
,b
和c
,而不是Range
函数。
否则,逻辑是合理的。 :)