¿Cómo generar números aleatorios normales invertidos en VBA?

0

Estoy tratando de generar 5.000 variables aleatorias El uso de estas funciones se destacan: normsinv(rand()). Este es el código que escribí:

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

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

r = r + 1

Next

Sin embargo, cuando ejecuto no sucede nada (pero tampoco acusa ningún error) ... ¿Podría decirme qué hay de malo en el código?

Johnny
fuente
¿Debería ser Rand()no Rnd()?
DavidPostill
El código VBA en lugar de NORMSINV (RAND ()) también podría ayudarlo ...
DavidPostill

Respuestas:

0

No necesitas un bucle:

Sub dural()
    Dim r As Range
    Set r = Range("A1:A5001")
    r.Formula = "=normsinv(rand())"
    r.Copy
    r.PasteSpecial (xlPasteValues)
End Sub
Estudiante de gary
fuente