问题描述
我有一个电子表格,其中包含我需要拆分使用的帐户列表,并使用 XIRR 功能来自动执行计算过程。我在 C 列中有帐号,这就是我需要拆分每个部分的方式。我在 E 列中有日期,在 F 列中有现金流量。
到目前为止,我所拥有的是比较 C 列中数据的代码,如果它们不同,则在它们之间放置一个空行。然后它检查空行,并将文本“IRR”放在 A 列中,然后我需要 XIRR 函数来运行并在 K 列中的那一行上输出结果。数据是通过转到其中的行获得的IRR 在 A 列,移动到 C 列,向上移动一个单元格,然后选择块中的所有内容,直到下一个空行,移动,对第二个数组执行相同操作,然后将它们放入 XIRR 函数中。
我有代码可以放入新标题,将 IRR 添加到最后一行,因为它不是自动完成的,然后删除添加到第二行的“IRR”,因为第一行与标题不同。我的问题来自我不断收到的两个错误。它一直说 dateArray 的类型 13 不匹配。这是因为我卡在了第二行,它试图从标题中获取数据,或者如果它通过那里然后它说同样的。
这是我所拥有的;
Sub XirrCalc()
Dim lRow As Long
Dim DatesArray() As Date
Dim CashflowArray() As Double
Dim i As Integer
Range("A1").Select
ActiveCell.Offset(0,11).Value = "IRR %"
Range("A1").Select
Selection.End(xlToRight).Select
Selection.Offset(0,-1).Select
Selection.copy
Selection.Offset(0,1).Select
Selection.PasteSpecial Paste:=xlPasteFormats,Operation:=xlNone,_
SkipBlanks:=False,Transpose:=False
Application.CutcopyMode = False
Range("A1").Select
Selection.End(xlDown).Select
Selection.Offset(1,0).Select
Selection.Value = "IRR"
Selection.Offset(-1,0).Select
Selection.copy
Selection.Offset(1,0).Select
Selection.PasteSpecial Paste:=xlPasteFormats,Transpose:=False
Application.CutcopyMode = False
Range("A1").Select
For lRow = Cells(Cells.Rows.Count,"C").End(xlUp).Row To 2 Step -1
If Cells(lRow,"C") <> Cells(lRow - 1,"C") Then Rows(lRow).EntireRow.Insert
If Cells(lRow,"A").Value = "" Then Cells(lRow,"A").Value = "IRR"
Next lRow
Range("A1").Select
ActiveCell.Offset(1,0).Select
Selection.ClearContents
If Cells(lRow,"A").Value = "IRR" Then Cells(lRow,"A").Offset(-1,4).Select
Range(Selection,Selection.End(xlUp)).Select
i = Selection.Rows.Count
ReDim DatesArray(i)
ReDim CashflowArray(i)
DatesArray = Selection.CurrentRegion.Value
Selection.Offset(0,1).Select
Range(Selection,Selection.End(xlUp)).Select
CashflowArray = Selection.CurrentRegion.Value
Selection.Offset(1,6).Select
ActiveCell.Value = Application.XIRR(CashflowArray,DatesArray)
End Sub
这不是最干净的方法,我相信它可以做得更好,因此感谢您提供任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)