Есть код VBA+Excel, необходимо сам файл и макрос переработать под LibreOffice Calc. Файл и код макроса прилагается.
Sub psk()
Dim dates()
Columns("A:A").Select
dates() = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim summa()
Columns("B:B").Select
summa = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim m As Integer
m = UBound(dates)
bp = 30
cbp = Round(365 / bp)
ReDim Days(m)
For k = 2 To m
Days(k) = dates(k) dates(2)
Next
ReDim e(m)
ReDim q(m)
For k = 2 To m
q(k) = Days(k) \ bp
e(k) = (Days(k) Mod bp) / bp
Next
i = 0
x = 1
x_m = 0
s = 0.000001
Do While x > 0
x_m = x
x = 0
For k = 2 To m
x = x + summa(k) / ((1 + e(k) * i) * ((1 + i) ^ q(k)))
Next
i = i + s
Loop
If x > x_m Then
i = i s
End If
psk = Round(i * cbp, 5)
Cells(3, 7).Value = psk
End Sub
Опубликован 20.08.2014 в 22:12