¿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?


¿Debería ser Rand()no Rnd()?
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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.