Avatar billede til_lykke Nybegynder
27. juli 2007 - 18:35 Der er 3 kommentarer

URGENT! Hjælp til at koble to VBA-funktioner sammen

Jeg ved det er et long shot, men måske er der nogen som kan hjælpe.

Jeg har skrevet følgende funktion:

Function Options_pris(s, x, T, rate)

Dim i As Integer
Dim AVG As Double
Dim AVG_1 As Double
Dim o As Single
Dim p As Single
Dim q As Single
Dim d1 As Single
Dim d2 As Single
Dim sd As Double
   
AVG = 0

INDSÆT HER

For i = 1 To 1 '(Antal vol stier)
   
    AVG_1 = 0
    sd = vol()
   
    o = Log(s / x)
    p = (rate + 0.5 * sd ^ 2) * T
    q = sd * (T ^ 0.5)
    d1 = (o + p) / q
    d2 = d1 - sd * (T ^ 0.5)
    AVG_1 = s * SNorm(d1) - x * Exp(-rate * T) * SNorm(d2)
   
   
    AVG = AVG + AVG_1

Next i

Options_pris = AVG / 1


End Function


Denne funktion kalder en anden funktion, hvor der indgår et "random term" - dvs. jeg bruger funktionen Rnd() i VBA. Rnd() skal køres med et fast sæt af random terms, dvs. Rnd(-3) og dette skal starte udenfor loop'et i ovenstående funktion (INDSÆT HER).

Min Rnd() står dog i den anden funktion - hvordan får jeg dette koblet sammen?
Avatar billede til_lykke Nybegynder
27. juli 2007 - 19:35 #1
Jeg fandt en løsning ved at skrive funktionerne sammen til en funktion, men det er ikke optimalt.


Anyway - problemet er nu, at den ikke genberegner funktionen automatisk, når jeg ændrer inputværdier. Hvordan skriver jeg det ind i koden, så jeg tvinger den til det?? -automatisk genberegning er slået til i Excel...
Avatar billede martin_moth Mester
28. juli 2007 - 08:28 #2
ligesom du kan køre macroen når Excel åbner (_OnLoad vistnok) må der være en event der kan trigge din macro.  En _OnChange, _Keypress eller noget i den stil?
Avatar billede til_lykke Nybegynder
28. juli 2007 - 10:01 #3
Løsningen var egentlig bare at skrive parametrene ind i selve funktionen. Dvs.

Options_pris(S,X,T,rate,("vol-parametre"))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester