0

次のコードがありますが、次のエラーが表示されます: Compile error, variable not found(j を見つけることができません) また、MktVol を長さ 4 のベクトルとして指定しても、メッセージ ボックスはN=0 Can you please help me fix my wrong. を返します。

Public Function EstimateAllParameters(params, MktStrike, MktVol, F, T, b)
Dim R As Double, a As Double, V As Double, N As Integer
Dim j as integer 'stops the compile error but the function returns #VALUE! 
Dim ModelVol() As Double, sqdError() As Double
R = params(1)
V = params(2)
a = params(3)
N = MktVol.Length
MsgBox ("N= " & N)
For j = 1 To N
 ModelVol(j) = Svol(a, b, R, V, F, MktStrike(j), T)
  sqdError(j) = (ModelVol(j) - MktVol(j)) ^ 2
Next j
EstimateAllParameters = Sum(sqdError)
End Function

MktStrikeセル E5:E8 に次の値があります

12
13
14
15

MktVolセル F5:F8 に次の値があります

0.234
0.236
0.242
0.249
4

1 に答える 1

0

明らかな問題は、J が Dim されていないことです

私なら、変えるね:

Dim R As Double, a As Double, V As Double, N As Integer

Dim R As Double, a As Double, V As Double, N As Integer, J as Integer
于 2012-11-13T21:37:19.977 に答える