Laufen ist dies eine einfache Änderung Code Aktienkurs meine Code-Funktion (mit Parametern) isteine Vba-Funktion auf Knopfdruck funktioniert nicht in 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
Parameter von Zellen in Excel übergeben werden. Ich möchte diese Funktion aus Knopf klicken und Rückgabewert in einer Zelle anzeigen sagen b12. Ich habe versucht, den Code in eine Schaltfläche sub, aber es funktioniert nicht, ein Aufruf vancylacall innerhalb sub nicht funktioniert nicht. wie ..
private sub button1_click()
call vanillacall
end sub
Wenn Sie in button1_click() die Funktion vanillacall aufrufen, müssen Sie alle notwendigen Argumente übergeben. – Mrig
Ich glaube nicht, dass das funktionieren wird, weil Sie '= VanillaCall()' in eine Zelle setzen und die notwendigen Argumente übergeben müssen. Sie können die Argumente übergeben, indem Sie diese Funktion aus einem Makro aufrufen, aber dann müssen Sie definieren, wo Sie das Ergebnis in diesem Makro selbst ausgeben möchten. – newguy
aber meine Argumente kommen von Zellen in Excel, die auf der laufenden Funktion – user2997767