我目前正在計算股票投資回報。我有大約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