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 LongDim flg() As BooleanDim num As LongDim i As LongDim Number() As LongMaxNum = 10 '←最大值ReDim Number(1 To MaxNum) As LongReDim flg(1 To MaxNum) As BooleanRandomizeFor i = 1 To MaxNumDonum = Int(Rnd * MaxNum) + 1' 如果这个随机数没出现过就会放到Number里面,' 如果出现了则生成心得随机数,知道不重复为止If flg(num) = False Thenflg(num) = TrueNumber(i) = numExit DoEnd IfLoopNext iFor j = 1 To MaxNumCells(j, 1).Value = Number(j)NextEnd Sub


赞 (0)
