用VB怎么产生不重复的随机数?

每按一次按钮就产生一个1-10的随机数!
可能我说得不够清楚!
我要的是产生不重复的!就是每按一次就产生一个数!连续按10次!出来的十个数都是不重复的!
不要复制以前的答案!我要实际的例子+答案!

Dim a(1 To 10) As Integer
Private Sub Command1_Click()
Static n As Integer
n = n + 1
If n > 10 Then Exit Sub
Do
x = Int((10 - 1 + 1) * Rnd + 1)
j = True
For i = 1 To n - 1
If x = a(i) Then j = False: Exit For
Next i
Loop Until j
a(n) = x
Command1.Caption = a(n)
End Sub

Private Sub Form_Load()
Randomize

End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-23
Private Sub Command1_Click()
Randomize
me.caption=Int((10- 1 + 1) * Rnd + 1)
End Sub

参考资料:最恨VB是一个最爱VB的人 ^^

第2个回答  2008-03-24
Private Sub Command1_Click()
Randomize
a = Int((10 - 0 + 1) * Rnd + 0)
Print a
End Sub
第3个回答  2008-03-23
Private Sub Command1_Click()
Randomize
a = Int((10 - 0 + 1) * Rnd + 0)
Print a
End Sub
第4个回答  2008-03-23
Rnd 函数

返回一个包含随机数值的 Single。

语法

Rnd[(number)]

可选的 number 参数是 Single 或任何有效的数值表达式。

返回值

如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。

说明

Rnd 函数返回小于 1 但大于或等于 0 的值。

number 的值决定了 Rnd 生成随机数的方式。

对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。

在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
相似回答