Como gerar números aleatórios normais invertidos no VBA?

0

Estou tentando gerar 5.000 variáveis aleatórias usando estas funções do Excel: normsinv(rand()) . Este é o código que eu escrevi:

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

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

r = r + 1

Next

No entanto, quando executo nada acontece (mas também não acusa nenhum erro) ... Você poderia, por favor, me dizer o que há de errado com o código?

    
por Johnny 08.11.2014 / 16:17

1 resposta

0

Você não precisa de um loop:

Sub dural()
    Dim r As Range
    Set r = Range("A1:A5001")
    r.Formula = "=normsinv(rand())"
    r.Copy
    r.PasteSpecial (xlPasteValues)
End Sub
    
por 08.11.2014 / 17:00