Как генерировать инвертированные нормальные случайные числа в VBA?

Я пытаюсь сгенерировать 5.000 случайных величин, используя эти функции Excel: normsinv(rand()), Это код, который я написал:

Dim r As Integer
r = 1
For r = 1 To 5001

.Cells(r + 1, 1) = Application.WorksheetFunction.NormSInv(Rnd())

r = r + 1

Next

Однако, когда я выполняю ничего не происходит (но он также не обвиняет ни в какой ошибке)... Не могли бы вы сказать мне, что не так с кодом?

1 ответ

Вам не нужен цикл:

Sub dural()
    Dim r As Range
    Set r = Range("A1:A5001")
    r.Formula = "=normsinv(rand())"
    r.Copy
    r.PasteSpecial (xlPasteValues)
End Sub
Другие вопросы по тегам