Как написать динамически растущую таблицу в Excel VBA? - PullRequest
0 голосов
/ 06 апреля 2020

Мне нужно сделать кредитный калькулятор превосходным, и я хочу, чтобы он записал результаты в таблицу. Теперь я написал, чтобы написать первую строку, потому что я не знаю, как мне ссылаться на ячейки в цикле excel vba. Я хотел бы, чтобы он просто отображал точное количество платежей (весь платеж, его основную часть и процентную часть, это калькулятор типа аннуитета), когда я нажимаю кнопку «Рассчитать», я пишу формулу в каждую ячейку, которую я, возможно, нужно использовать. Я просто хотел бы, чтобы те были пустыми вместо того, чтобы писать сообщение об ошибке #NUM! ошибка, при которой платеж не требуется (например, это кредит на 6 месяцев, а не на 12, поэтому после 6 месяцев будет написано сообщение об ошибке #NUM!). Мой код похож на этот банкомат. hitelosszeg = текущая стоимость, futamido = количество платежей, kamatlab = процентная ставка, torlesztoresz = платеж, kamatresz = процентная часть платежа, tokeresz = основная часть платежа, hiteldij = весь процент.

Sub KALKULÁL() '
' KALKULÁL Makró'
If Application.ReferenceStyle = xlA1 Then
Application.ReferenceStyle = xlR1C1
End If

    Dim hitelosszeg As Double
    Dim futamido As Double
    Dim kamatlab As Double
    Dim periodus As Double
    Dim torlesztoresz As Double
    Dim tokeresz As Double
    Dim kamatresz As Double
    Dim vegosszeg As Double
    Dim hiteldij As Double


    hitelosszeg = Range("B9")
    futamido = Range("B10")
    kamatlab = Range("B11")


    If IsNull(hitelosszeg) Then
        MsgBox ("A hitelösszeg megadása kötelező!")
        If IsNull(futamido) Then
        MsgBox ("A futamidő megadása kötelező!")
        End If
        If IsNull(kamatlab) Then
        MsgBox ("A kamatláb megadása kötelező!")
        End If
    Else
        periodus = Range("A16").Value
        torlesztoresz = Pmt(kamatlab / 12, futamido, hitelosszeg) * -1
        tokeresz = PPmt(kamatlab / 12, periodus, futamido, hitelosszeg) * -1
        kamatresz = IPmt(kamatlab / 12, periodus, futamido, hitelosszeg) * -1
        Range("B16") = Round(torlesztoresz, 0)
        Range("C16") = Round(tokeresz, 0)
        Range("D16") = Round(kamatresz, 0)
        vegosszeg = torlesztoresz * futamido
        hiteldij = vegosszeg - hitelosszeg
        Range("C13") = Round(vegosszeg, 0)
        Range("F13") = Round(hiteldij, 0)



    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...