簡體   English   中英

Excel VBA XIRR無法按預期工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM