Как определить формулу в VBA? - PullRequest
0 голосов
/ 27 июня 2018

Я хочу определить функцию следующего выражения и использовать ее, например, как я использую SUM, AVERAGE и т. Д. Эта формула, как вы можете видеть, имеет только 1 аргумент (значение ячейки E28). Однако, если кто-то может мне помочь для функции с более чем одним аргументом это будет здорово!

Я новичок в 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 голосов
/ 27 июня 2018

Может как то так? Я позволил себе сменить «<» на «<=», угадав, какое значение вы хотите получить, когда ваш вход точно равен 250000, 500000 или 1000000. </p>

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...