1
私は、月間リターンデータに基づいて3年間のローリングリターンの計算を自動化するプロセスを開発しています。エラーを生成するコードの一部を次に示します。成功した計算後のランタイムエラー5
Set rolling_returns = Range([c41], [c41].End(xlDown))
start_no_begin = 6
start_no_end = 41
For Each calc In rolling_returns
reference_begin = "C" & start_no_begin
reference_end = "C" & start_no_end
Set calculation1 = Range(reference_begin, reference_end)
calc.Offset(0, 3) = ((WorksheetFunction.Product(calculation1)) - 1)^(1/3)
'why is this getting stopped after a certain amount of calculations??
start_no_begin = start_no_begin + 1
start_no_end = start_no_end + 1
Next
私のコードは175回反復して実行され、エラーが発生します。手動で計算を再現しました。エラーはないので、データの問題ではないと思います。メモリの問題かもしれませんか?
開始値と終了値と比較してループ値を問題にすることができますか?calc = 174までコードをステップ実行し、その変数値をすべて確認してから、もう一度ステップを実行してください。 – Davesexcel
私はそれを試しましたが、問題の原因がどこにあるのかまだ分かりません。すべての変数は正しい値を持っていますが、それ以上は進まないでしょう。しかし、入力をありがとう。 – clysaght62
私は問題を診断したと思います。指数が整数でない場合、Excel VBAは指数を計算するのが難しいと思います。私は指数関数的な問題を具体的に見た後、これを見つけました:http://stackoverflow.com/questions/28390833/run-time-error-5-in-vba-excel-when-working-with-array – clysaght62