Мне нужно сделать кредитный калькулятор превосходным, и я хочу, чтобы он записал результаты в таблицу. Теперь я написал, чтобы написать первую строку, потому что я не знаю, как мне ссылаться на ячейки в цикле 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