我正在尝试在特定单元格中生成特定的随机数。 我写了代码。但是当我运行它时,输出在每个单元格中都是相同的值。但是,当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
答案 0 :(得分:0)
问题是最后一行。将其更改为:
Sheets("BB").Range("B2:B9").Value = Application.Transpose(W)
您正在填充的数组是水平的。要将其垂直转动,必须进行转置。这适用于较小的阵列,可以转置的数量有限制。之后你需要循环。
答案 1 :(得分:0)
将“随机化”添加到您的子。它会随机播放随机引擎。
Sub BB()
Randomize
...
End sub