如何在 VBA 中生成倒数正态随机数?

如何在 VBA 中生成倒数正态随机数?

我正在尝试使用这些 Excel 函数生成 5.000 个随机变量: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

相关内容