Функция VBA возвращает #VALUE в Excel с сообщением: значение в формуле не соответствует указанному типу данных. - PullRequest
0 голосов
/ 21 сентября 2018

Я только начинаю изучать VBA.Я пытаюсь сделать цикл, который будет действовать как решатель, чтобы найти количество платежей за кредит:

Function FonctionValue(rate As Double, pmt1 As Double, loan As Double, nbpmt As Double)

    FonctionValue = Application.WorksheetFunction.pmt(rate, nbpmt, loan) - pmt1

End Function

Function Npmt(nbpmtlow As Double, nbpmthigh As Double, rate As Double, loan As Double, pmt1 As Double) As Variant

    Dim i As Integer
    Dim nbpmt As Double

    For i = 1 To 100

        flow = FonctionValue(rate, pmt1, loan, nbpmtlow)
        fhigh = FonctionValue(rate, pmt1, loan, nbpmthigh)
        value = nbpmtlow - flow * (nbpmthigh - nbpmtlow) / (fhigh - flow)
        fnbpmt = FonctionValue(rate, pmt1, loan, nbpmt)

        If fhigh * fnbpmt > 0 Then
            nbpmthigh = value
        Else
            nbpmtlow = value
        End If

    Next i

    value = Npmt

End Function

1 Ответ

0 голосов
/ 21 сентября 2018

Основные проблемы:

  • В строке fnbpmt = FonctionValue(rate, pmt1, loan, nbpmt), nbmpt = 0. Это неверный ввод для WorksheetFunction.Pmt.Не совсем понятно, каким должно быть nbpmt, но оно должно быть больше 0.
  • Изменить value = Npmt на Npmt = Value;у вас есть заказ в обратном направлении.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...