[英]Excel VBA XIRR not working as expected
我正在編寫代碼,但是Excel的XIRR
函數有問題。
您有一個包含2列(日期和金額)的矩陣,因此輸入是矩陣,日期和數量。 在代碼內部,它接受低於您用作輸入日期的值,使用這些值創建一個新數組,並添加您輸入為輸入的日期和金額。 輸出應該是該陣列的XIRR
。 它似乎不起作用。 它與IRR
配合使用,日期是重要的輸入。 有人知道如何解決此問題嗎? 提前致謝!
Function Retorno(matriz As Range, dia As Date, valuacion As Double) As Double
Dim Datos As Range
Dim Aux1()
Dim Aux2()
Dim i, j, m, n As Integer
Set Datos = matriz
j = 0
For i = 1 To Datos.Rows.Count
If Datos(i, 1) <= dia Then
j = j + 1
End If
Next i
ReDim Aux1(1 To j + 1)
ReDim Aux2(1 To j + 1)
For n = 1 To j + 1
Aux1(n) = Datos(n, 2)
Next n
Aux1(j + 1) = valuacion
For m = 1 To j + 1
Aux2(m) = Datos(m, 1)
Next m
Aux2(j + 1) = dia
Retorno = WorksheetFunction.Xirr(Aux1, Aux2)
End Function
您的最后一個Aux2(j + 1) = dia
將用第一個日期覆蓋數組中的第二個日期,從而在date數組中給您兩個相同的日期。
您可能要刪除該行。
解決此問題的另一種可能的方法是,將日期轉換為數字:Aux2(m)= Datos(m,1)* 1 XIRR也將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.