实际上你完全没有必要这样,下面提供一个方便的:dim i as long dim N() as longfor i = 1 to 10000 '自选间隔 redim preserve N(i) as long N(i) = i next i调用时再选: dim j as long j = 1 + 10000 * rnd() msgbox N(i) 这样就不用再排序了!!!!!!!难道不是你需要吗?
Dim IntNum() As IntegerPrivate Sub Form_Load() ReDim IntNum(0) End SubPrivate Sub Command1_Click() On Error Resume Next Dim i As Integer, j As Integer i = UBound(IntNum) Dim IntNumber As Integer '放随机数 IntNumber = Int(Rnd(1) * 100) For j = 1 To i If IntNumber = IntNum(j) Then Exit For Next j If j > i Then ReDim Preserve IntNum(i + 1) IntNum(i + 1) = IntNumber End If For j = 1 To UBound(IntNum) Debug.Print IntNum(j) Next j End Sub
dim N() as longfor i = 1 to 10000 '自选间隔
redim preserve N(i) as long
N(i) = i
next i调用时再选:
dim j as long
j = 1 + 10000 * rnd()
msgbox N(i)
这样就不用再排序了!!!!!!!难道不是你需要吗?
改为msgbox N(j)
ReDim IntNum(0)
End SubPrivate Sub Command1_Click()
On Error Resume Next
Dim i As Integer, j As Integer
i = UBound(IntNum)
Dim IntNumber As Integer '放随机数
IntNumber = Int(Rnd(1) * 100)
For j = 1 To i
If IntNumber = IntNum(j) Then Exit For
Next j
If j > i Then
ReDim Preserve IntNum(i + 1)
IntNum(i + 1) = IntNumber
End If
For j = 1 To UBound(IntNum)
Debug.Print IntNum(j)
Next j
End Sub
我没有随机生成数,而是自动赋了一个不重复的数组,然后随机调用。要保证不重复,肯定得用另外的方法!