Ещё раз спасибо, за помощь)
Записывал значения в ячейку, что бы проверять их пошагово.
Вопрос по условию:
(Do While Round(Int(d2), 4) <> Round(d2, 4)
"Делать пока округлённое целое d2, неравно округлённому d2"
Оно так читается ?
Добавил немножко: d2 = Round(d2, 4)
А то получалось вот так:
Число 424.88(d1), по условию уже на 425(d1) должно выдать ровно 510(d2).
получалось что оно проскакивает до 2541.50(d2) и 2117.50(d1).
Хотя это может быть менее точное значение.
Сейчас вроде бы работает как нужно)
Sub test3()
Dim i As Long, llastr As Long
Dim d1 As Double, d2 As Double
llastr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To llastr
d1 = Cells(i, 1).Value
d2 = d1 * 0.2 + d1
d2 = Round(d2, 4) ' Добавил вот тут
Do While Round(Int(d2), 4) <> Round(d2, 4) ' Or Cells(i, 2).Value = ""
d1 = d1 + 0.01
d2 = d1 * 0.2 + d1
d2 = Round(d2, 4) ' И тут
If d2 > 10000 Then
d2 = 0
d1 = 0
Exit Do
End If
DoEvents
Loop
Cells(i, 2).Value = d2
Cells(i, 3).Value = d1
Next
End Sub