Это происходит, когда ваш Rnd()
возвращает значение 0
или 1
, что, конечно, является приемлемым значением для функции Rnd()
, но не является входом для Norm_S_Inv()
. * 1006.*
Я легко могу воспроизвести это на своем компьютере (мой Excel на итальянском языке, фактически я получаю код 1004
, но текст на моей стороне скорее говорит: «Не удается найти свойство Norm_S_Inv для класса 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)
>>>
Чтобы избежать этого, убедитесь, что вы не получаете 0
или 1
в качестве входов вашей функции:
myRand = Rnd()
Do Until (myRand <> 0 And myRand <> 1)
myRand = Rnd()
Loop
g = WorksheetFunction.Norm_S_Inv(myRand)
Личное примечание: это кажется довольно плохой обработкой ошибок, выполненной для этой функции, сообщение об ошибке не совсем ясно, и я понимаю ваше разочарование в поиске основной причины.