在VBA中超过XIRR

时间:2018-08-08 16:21:20

标签: vba excel-vba error-handling xirr

我正在处理具有两列(日期和金额)的矩阵。我想得到的是该行中的XIRR函数超过了某个百分比,即10%。

我一直在使用的代码如下

Dim Vaux1, Vaux2 As Range
Dim a, f As Integer 
Dim e as Boolean
a = Range("W21", Range("W21").End(xlDown)).Rows.Count 'rows of arrray
Set Vaux1 = Range("W21", Range("W21").End(xlDown)) 'this has the dates
Set Vaux2 = Range("V21", Range("V21").End(xlDown)) 'this has the amounts
f = 0 'this will tell in which row XIRR exceeds a certain percentage
e = False 
On Error Resume Next 'Sometimes XIRR shows #NUM! so if thats the case, move to next b
For b = 2 To a
    If Application.WorksheetFunction. _
    Xirr(Range(Vaux1(1), Vaux1(1).Cells(b)), _
    Range(Vaux2(1), Vaux2(1).Cells(b))) > Range("AE4") And e = False Then
        e = True
        f = b
    End If

Next b

在这种情况下,Range("AE42") = 9%

在我的示例中,所有矩阵的XIRR为15%,但是我在f中获得的值使我的矩阵的XIRR几乎为0%

此外,我不知道我是否正在使用On Error Next Resume。我知道有时XIRR会显示#NUM!,所以循环会停止,如果是这种情况,我想移至下一个索引。

提前谢谢

0 个答案:

没有答案