vba excel:每次更改某个变量时都会执行某些操作

时间:2010-03-16 22:34:36

标签: excel vba excel-vba

我正在为变量St

做一些事情
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

每次变量变化时如何收到通知?

3 个答案:

答案 0 :(得分:1)

每次评估后,您都可以使用断点或将St的值转储到Excel文件的列中。

一个非常恼人的解决方案是在整个地方添加消息框

另一个聪明的解决方案是通过声明一个存储先前值St的变量,然后在评估新St

答案 1 :(得分:1)

在Excel VBE中,您可以为每个变量添加“监视”。选择您的变量,转到调试菜单,点击添加观看... ,然后点击观看类型,点击按价值突破变化

答案 2 :(得分:1)

也许这是一个非常天真的答案,但是如果你创建一个调用sub的函数,那么每次更改变量时都会重新评估该函数。