2010-03-16 30 views
2

時間我做了一堆東西給變量StVBA擅長:每某個變量發生變化

For i = 1 To 30000 

Randomize 
e1 = Rnd 
e2 = Rnd 
z1 = Sqr(-2 * Log(e1)) * Cos(2 * 3.14 * e2) 
z2 = Sqr(-2 * Log(e1)) * Sin(2 * 3.14 * e2) 

St = So * Exp((r - (sigma^2)/2) * T + sigma * Sqr(T) * z1) 
C = C + Application.WorksheetFunction.Max(St - K, 0) 
St = So * Exp((r - (sigma^2)/2) * T - sigma * Sqr(T) * z1) 
C = C + Application.WorksheetFunction.Max(St - K, 0) 
St = So * Exp((r - (sigma^2)/2) * T + sigma * Sqr(T) * z2) 
C = C + Application.WorksheetFunction.Max(St - K, 0) 
St = So * Exp((r - (sigma^2)/2) * T - sigma * Sqr(T) * z2) 
C = C + Application.WorksheetFunction.Max(St - K, 0) 


Next i 

我怎麼得到通知,每次變量的變化做一些事情?

+0

順便說一句:'Pi = 4 * Atn(1)'in VBA – Tomalak 2010-03-16 22:46:05

回答

1

也許這是一個非常天真的答案,但如果你做了一個函數調用子,那麼每次變量被改變,那麼函數將被重新評估。

1

您可以在每次評估後使用斷點或將St的值轉儲到您的excel文件中的列。

一件很煩人的解決辦法是將所有的地方

又一個聰明的解決方案將是declarin將存儲St以前的值,然後比較針對一個變量的邏輯添加到您的代碼添加消息框它在新的評估後St

1

在Excel VBE中,您可以爲每個變量添加一個「監視」。選擇您的變量,轉到調試菜單上,單擊添加監視...然後在手錶種類,單擊歇更改值時