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