2010-03-16 28 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中,您可以为每个变量添加一个“监视”。选择您的变量,转到调试菜单上,单击添加监视...然后在手表种类,单击歇更改值时