我目前正在计算股票投资回报。我有大约10年的历史数据,而我构建自己职能的方式需要很长时间才能完成。例如,我有11列和2872行来计算每一天的收益。在Excel VBA中计算性能下降
my Function
Public Sub CalcROI(ByVal ColPick As Integer, ByVal ColPrint As Integer)
Dim irow As Integer
Dim iCol As Integer
For irow = 4 To 2873
'Calculating ROI
Cells(irow + 1, ColPrint).Value = (Cells(irow + 1, ColPick).Value - Cells(irow, ColPick).Value)/Cells(irow, ColPick).Value
Next irow
End Sub
和程序的执行是
CalcROI ColPick:=4, ColPrint:=17
ColPick - 从哪里值需要选择为计算
ColPrint - 在列其需要打印输出
没有在你的问题的问题!我想你想加快速度。您可以在计算中取出+1,并将For参数更改为5至2784,但为何不将公式放入电子表格中? – grahamj42 2013-03-16 13:21:07
因为我想用VBA菜单驱动的程序动态执行操作......我基本上是在计算价值风险 - 该表中的历史方法和股票信息来自彭博终端......以上是VaR caclulation – 2013-03-16 13:50:43
您可以通过在开始时添加Application.Screenupdating = false来显着提高当前代码的速度。 – enderland 2013-03-16 21:55:16