我现在依靠这个宏来生成随机序列,我只想检查我得到的序列是否确实是随机的(好吧,计算机可以随意做的最好)。
Sub Random()
For x = 1 To Selection.Rows.Count
r = Int(Rnd(1) * (Selection.Rows.Count) + 1)
For z = 1 To Selection.Columns.Count
y = Selection.Cells(x, z).Formula
Selection.Cells(x, z).Formula = Selection.Cells(r, z).Formula
Selection.Cells(r, z).Formula = y
Next z
Next x
End Sub
对于这个非常行人的问题感到抱歉,但我需要放心。
非常感谢
答案 0 :(得分:3)
在For
行
Randomize Timer
这将确保您再也不会获得相同的随机数,因为它使用计时器作为生成数字的随机性的种子。
您的代码应为
Sub Random()
For x = 1 To Selection.Rows.Count
Randomize Timer
r = Int(Rnd(1) * (Selection.Rows.Count) + 1)
For z = 1 To Selection.Columns.Count
y = Selection.Cells(x, z).Formula
Selection.Cells(x, z).Formula = Selection.Cells(r, z).Formula
Selection.Cells(r, z).Formula = y
Next z
Next x
End Sub