Excel VBA。 这个macros是否会产生随机排列?
我现在依靠这个macros来产生随机序列,而我只是想检查我得到的序列确实是随机的(当然,计算机可以随机做的最好)。
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
对不起,对于非常行人的问题,但我需要在这个安心。
非常感谢
在For
行后面加上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