Определяемая пользователем функция - сумма с итеративным вычислением - PullRequest
0 голосов
/ 14 марта 2020

Я пишу код VBA для расчета процентов, выплачиваемых между двумя периодами

Я написал этот код, но он всегда возвращает мне значение 0.

Function interests_paid_between(rate As Double, firstPer As Integer, lastPer As Integer, NPER As Integer, PV As Double) As Variant

Dim FutureValue As Double
FutureValue = InputBox("What is the future value of the loan? (if it is 0 put 0 else the value)")

    Dim i As Integer

    For i = firstPer To lastPer
        InterestPaid = InterestPaid + IPmt(rate, i, NPER, PV, FutureValue)
    Next i

    interests_paid_between = InterestPaid

End Function

Кроме того, я нужно включить опцию, где будущее значение не равно 0.

Не могли бы вы помочь мне с этим?

1 Ответ

0 голосов
/ 14 марта 2020

Использование Application.InputBox():

Function interests_paid_between(rate As Double, firstPer As Integer, lastPer As Integer, NPER As Integer, PV As Double) As Variant

    Dim FutureValue As Double
    FutureValue = Application.InputBox("What is the future value of the loan? (if it is 0 put 0 else the value)", Type:=1)

    Dim i As Integer

    For i = firstPer To lastPer
        InterestPaid = InterestPaid + IPmt(rate, i, NPER, PV, FutureValue)
    Next i

    interests_paid_between = InterestPaid

End Function

В ячейку введено:

=interests_paid_between(0.05,1,5,12,-1000)

и ввод 1200 Я получаю:

enter image description here

Я не знаю, правильны ли расчеты, но по крайней мере это не ноль.

...