VBA基础入门(49)35选7该怎么选?(2)
1
上期回顾
有朋友提醒我代码有问题的地方,不知道还有其他人看出来么?
这个能出现重复的随机数
+一句randomize
2
Randomize 语句
此示例使用 Randomize 语句初始化随机数生成器。由于省略了 number 参数,因此 Randomize 使用函数的返回值 Timer 作为新的种子值。
' 初始化随机数生成器
Randomize()
'生成1-6之间的随机数
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
接下来说说怎么避免重复这个事情,因为涉及取整,所以很有可能生成重复的随机数。
只需要check一下这个随机数出没出现过就可以了,定义一个数组,用于存放这个随机数出没出现过的信息。
Sub Randomizing()
Dim MaxNum As Long
Dim flg() As Boolean
Dim num As Long
Dim i As Long
Dim Number() As Long
MaxNum = 10 '←最大值
ReDim Number(1 To MaxNum) As Long
ReDim flg(1 To MaxNum) As Boolean
Randomize
For i = 1 To MaxNum
Do
num = Int(Rnd * MaxNum) + 1
' 如果这个随机数没出现过就会放到Number里面,
' 如果出现了则生成心得随机数,知道不重复为止
If flg(num) = False Then
flg(num) = True
Number(i) = num
Exit Do
End If
Loop
Next i
For j = 1 To MaxNum
Cells(j, 1).Value = Number(j)
Next
End Sub
赞 (0)