不工作一個VBA函數,這是一個簡單的股票價格變動的代碼 我的代碼是函數(參數)運行按下按鈕在EXCELL
Function VanillaCall(S0 As Single, Exercise As Single, Mean As Single, sigma As Single, _
Interest As Single, Time As Single, Divisions As Integer, Runs As Integer) As Single
deltat = Time/Divisions
interestdelta = Exp(Interest * deltat)
up = Exp(Mean * deltat + sigma * Sqr(deltat))
down = Exp(Mean * deltat - sigma * Sqr(deltat))
pathlength = Int(Time/deltat)
piup = (interestdelta - down)/(up - down)
pidown = 1 - piup
Temp = 0
For Index = 1 To Runs
upcounter = 0
For j = 1 To pathlength
If Rnd > pidown Then upcounter = upcounter + 1
Next j
callvalue = Application.Max(S0 * (up^upcounter) * (down^(pathlength - upcounter)) - Exercise, 0)/(interestdelta^pathlength)
Temp = Temp + callvalue
Next Index
VanillaCall = Temp/Runs
End Function
參數從細胞在Excel中通過。 我想從按鈕單擊執行此功能,並顯示單元格返回值說b12。 我已經嘗試把代碼裏面的按鈕子,但它不工作,呼籲vanillacall子內太不工作。 如..
private sub button1_click()
call vanillacall
end sub
當您在button1_click()中調用函數vanillacall時,必須傳遞所有必要的參數。 – Mrig
我不認爲這會起作用,因爲您必須將'= VanillaCall()'放在單元格中並傳遞必要的參數。您可以通過從宏調用該函數來傳遞參數,但是您必須定義要在宏中輸出結果的位置。 – newguy
但我的參數來自excell中的單元格,這些單元格在運行函數 – user2997767