在VBA中使用IPMT功能

时间:2018-04-23 08:42:19

标签: vba excel-vba excel

excel中的Ipmt函数计算第N期中支付的利息。我写了一个宏来计算从第一期到第N期(我指定的)应付的总利息,并把它放在activecell中。但问题是我认为数组的某处我做错了它导致“无法获取WorksheetFunction类的IPMT属性”错误。你能帮我吗?

ProcessNextMessage()

1 个答案:

答案 0 :(得分:1)

根据文档,第二个参数应为

  

每个必需。您想要找到兴趣的期间   并且必须在1到nper的范围内。

在您的情况下,在1到2的范围内。

目前它为0,因为你有一个初始值为0,0的数组。

你也只写出最后一个价值。

你的意思是:

 i = Application.WorksheetFunction.IPmt(0.18 / 2, j, 2, 108434)

根据你的意见求和:

Option Explicit

Sub CalculateInterest()
   ' Static i As Long '<==should this be Long and static?
    Dim i As Double
    Dim j As Long ' <==Use Long rather than Integer
    Dim PD(1 To 2) As Long
    For j = LBound(PD) To UBound(PD)
        i = i + Application.WorksheetFunction.IPmt(0.18 / 2, j, 2, 108434) 'Per should be in range 1 to 2
    Next j
    ActiveCell = i
End Sub