在VBA中使用IPMT函数
excel中的Ipmt函数计算第n期支付的利息。我编写了一个宏来计算我指定的从第一期到第n期的应付利息总额,并将其放入activecell中。但问题是,我认为在数组的某个地方我做错了,它导致无法获取WorksheetFunction类错误的IPMT属性。你能帮帮我吗在VBA中使用IPMT函数,vba,excel,Vba,Excel,excel中的Ipmt函数计算第n期支付的利息。我编写了一个宏来计算我指定的从第一期到第n期的应付利息总额,并将其放入activecell中。但问题是,我认为在数组的某个地方我做错了,它导致无法获取WorksheetFunction类错误的IPMT属性。你能帮帮我吗 Sub CalculateInterest() Static i As Long Dim j As Integer Dim PD(1 To 2) As Integer For j = 1 To 2 i = Application.W
Sub CalculateInterest()
Static i As Long
Dim j As Integer
Dim PD(1 To 2) As Integer
For j = 1 To 2
i = Application.WorksheetFunction.IPmt(0.18 / 2, PD(j), 2, 108434)
Next j
MsgBox i
ActiveCell.Value = i
End Sub
根据文件,第二个论点应该是 按要求。您希望查找利息的期间 并且必须在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
我希望I计算第一次和第二次的IPMT,将它们相加,然后返回活动单元中第一次和第二次安装的IPMT之和。TBH我想我的代码离我想得到的地方很远:/Thank you@QHarr我很感激