第1个回答 2008-09-17
在A1里面A1-A999中用公式生成999个随机数=RAND()
B1-B60中用公式排序,B1中输入=RANK(A1,$A$1:$A$999),一直拉到B60
B1:B60就是1-60个不重复的随机数字本回答被提问者和网友采纳
第2个回答 2008-09-18
给你两个代码:
1、只能在某一列进行,比如在A1:A60
Sub Emily08112005()
Dim DrawnArray(1 To 60) As Boolean
Dim NumArray(1 To 60, 0) As Integer
Erase DrawnArray
For i = 1 To 60
num = Int(60 * Rnd + 1)
Do While DrawnArray(num) = True
num = Int(60 * Rnd + 1)
Loop
DrawnArray(num) = True
NumArray(i, 0) = num
Next i
Sheet1.Range("A1:A60") = NumArray
End Sub
2、可以在某一个区间内,比如A1:F10
Sub five()
For Each c In Range("A1:F10")
c.Value = Int(Rnd() * 60) + 1
Do While WorksheetFunction.CountIf(Range("A1:F10"), c) > 1
c.Value = Int(Rnd() * 60) + 1
Loop
Next
End Sub
第3个回答 2008-09-17
excel工作表窗口中,同时按ALT和F11两个键,进入VBA编程界面,然后点击VBA菜单;“插入-模块”,在右栏的空白区粘贴代码
回到excel工作表窗口,点击菜单:工具-宏-宏,点选宏的名字 yyy,再点击“执行”按钮
在A1:A60自动生成不重复的随机数
sub yyy()
Dim i As Integer, j As Integer, a(1 To 60) As Integer
Randomize
For i = 1 To 60
a(i) = Int(Rnd * 60) + 1
For j = 1 To i - 1
If a(i) = a(j) Then
j = i - 1
i = i - 1
End If
Next
Next
Range("a1").Resize(i - 1, 1) = Application.Transpose(a)
end sub
第4个回答 2008-09-17
=RANDBETWEEN(1,60)