使用VBA中的For循环在ExcelSpreadsheet中生成不同的随机数

时间:2015-11-09 18:21:47

标签: excel-vba for-loop vba excel

我正在尝试在特定单元格中生成特定的随机数。 我写了代码。但是当我运行它时,输出在每个单元格中都是相同的值。但是,当For循环继续时,我希望每个单元格中的不同值为'j'的不同值。请更正我的代码以获得所需的输出。提前谢谢。

VBA代码如下:

Sub BB()

Dim W(1 To 10) As Double
Dim W0 As Double, Wn As Double
Dim j As Integer

W0 = 0

Wn = (10) ^ 0.5 * Cells(1, 1).Value

For j = 1 To 10

    W(j) = Application.NormInv(Rnd(), Wn * j, Wn * j ^ 2 + W0)

Next j

Sheets("BB").Range("B1:B10").Value = W()

End Sub

2 个答案:

答案 0 :(得分:0)

问题是最后一行。将其更改为:

Sheets("BB").Range("B2:B9").Value = Application.Transpose(W)

您正在填充的数组是水平的。要将其垂直转动,必须进行转置。这适用于较小的阵列,可以转置的数量有限制。之后你需要循环。

答案 1 :(得分:0)

将“随机化”添加到您的子。它会随机播放随机引擎。

Sub BB()
 Randomize
...
End sub