WorksheetFunction.Norm_S_Inv() 的问题

Problem with WorksheetFunction.Norm_S_Inv()

我正在尝试为 5000 次试验制作蒙特卡洛模型。

我似乎有一个奇怪的问题

g = WorksheetFunction.Norm_S_Inv(Rnd())

在循环(5000 次试验)的运行过程中,起初它在工作,但随后出现错误消息:

Run-time error "1004": Method 'Norm_S_Inv' of object 'WorksheetFunction' failed

我查看了许多 VBA 网站,但似乎没有找到解决方案。 我还测试了

提前谢谢你,

当您的 Rnd() returns 值为 01 时,这当然是 Rnd() 函数可接受的值,但是它不是 Norm_S_Inv().

的输入

我可以在我的电脑上轻松重现(我的 Excel 是意大利语,实际上我得到了 1004 代码,但我这边的文字是“找不到 属性 Norm_S_Inv 对于 class WorksheetFunction:

g = WorksheetFunction.Norm_S_Inv(0.14)
Debug.Print g
>>> -1.08031934081496

g = WorksheetFunction.Norm_S_Inv(0) 'or g = WorksheetFunction.Norm_S_Inv(1)
>>> 

为了避免这种情况,请确保您没有将 01 作为函数的输入:

myRand = Rnd()
Do Until (myRand <> 0 And myRand <> 1)
    myRand = Rnd()
Loop
g = WorksheetFunction.Norm_S_Inv(myRand) 

个人说明:这似乎是为此功能所做的错误处理,错误消息一点也不清楚,我理解您在寻找根本原因时的挫败感。