我想生成一组不重复的随机数,写了如下的代码。但总是得不到我想要的结果,请大家一起来看看这段代码。
Sub maro()
Dim arry(1 To 5) As Integer
Dim temp, i, number As Integer
For i = 1 To 5
arry(i) = Int(5 * Rnd + 1)
If i > 1 Then
For temp = 1 To i - 1
While arry(i) = arry(temp)
arry(i) = Int(5 * Rnd + 1)
Wend
Next temp
End If
Next i
For i = 1 To 5
Worksheets("sheet1").Range("b2").Cells(i, 1).Value = arry(i)
Next
End Sub
时间: 2003-6-10 20:45
作者: evileboy
Sub maro()
Dim arry(1 To 5) As Integer
Dim temp, i, number As Integer
For i = 1 To 5
arry(i) = Int(5 * Rnd + 1)
If i > 1 Then
For temp = 1 To i - 1
if arry(i) = arry(temp) then arry(i) = Int(5 * Rnd + 1)
Next temp
End If
Next i
For i = 1 To 5
Worksheets("sheet1").Range("b2").Cells(i, 1).Value = arry(i)
Next
End Sub
时间: 2003-6-11 13:15
作者: 如火骄阳
if arry(i) = arry(temp) then arry(i) = Int(5 * Rnd + 1)
arry(i)的随机数会再一次与上面的相同,不能这么用。
必须有While循环。