如何在VBA中定义公式?

时间:2018-06-27 17:55:29

标签: vba

我想定义以下表达式的功能,并像使用SUM,AVERAGE等方式使用它。正如您所看到的,此公式只有1个论点(单元格值为E28),但是,如果有人可以帮助我对于具有超过1个参数的函数,它将是很棒的!

我是VBA的新手,请原谅我的缺点。

KandhasFormula=IF(AND(E28<250000),0,IF(AND(E28>250000,E28<500000),E28,IF(AND(E28>500000,E28<1000000),12500+0.2*(-500000+E28),112500+0.3*(-1000000+E28))))

1 个答案:

答案 0 :(得分:0)

也许是这样?我自由地将“ <”更改为“ <=”,以猜测当您的输入正好等于250000、500000或1000000时您想要的值。

Option Explicit

Function KandhasFormula(rng As Range) As Double

    If rng.Count > 1 Or Not VarType(rng.Value) = vbDouble Then Exit Function

    If rng.Value <= 250000 Then
        KandhasFormula = 0
    ElseIf rng.Value > 250000 And rng.Value <= 500000 Then
        KandhasFormula = rng.Value
    ElseIf rng.Value > 500000 And rng.Value <= 1000000 Then
        KandhasFormula = 12500 + 0.2 * (rng.Value - 500000)
    Else
        KandhasFormula = 112500 + 0.3 * (rng.Value - 1000000)
    End If
End Function