例030彩票幸运号码 1.案例说明 本例结合数组和随机函数的知识,生成指定数量的彩票幸运号码。本例生成的彩票号码 每注由7位数构成,首先让用户输入产生的注数,再使用循环语句生成指定注数的号码。 2.关键技术 本例代码中使用了两个关键技术:动态数组和随机函数。 (1)动态数组 本例使用二维数组保存所有的彩票号码,二维数组的定义格式如下: Dim 数组名(第1维上界,第2维上界) As 数据类型或 Dim数组名(第1维下界To第1维上界,第2维下界To第2维上界) As数据类型在本例中,因为生成的彩票数量是由用户输入的数据决定的。因此这里使用动态数组。动态数组是指在程序运行时大小可以改变的数组,定义动态数组一般分两个步骤:首先在用户窗体、模块或过程中使用Dim或Public声明-一个没有下标的数组(不能省略括号),然后在过程中用ReDim语句重定义该数组的大小。ReDim语句在过程级别中使用,用于为动态数组变量重新分配存储空间。其语法格式如下: ReDim [Preserve] 数组名(下标) [As 数据类型] 可以使用ReDim语句反复地改变数组的元素以及维数的数目,但是不能在将一-个数组定义为某种数据类型之后,再使用ReDim将该数组改为其他数据类型,除非是Variant 所包含的数组。如果使用了Preserve 关键字,就只能重新定义数组最后一维的大小, 并不能改变维数的数目。 (2)随机函数Rnd 随机函数Rnd可返回小于1但大于或等于0的一个小数。其语法格式如下: Rnd[ (number) ] 可选的number 参数是Single或任何有效的数值表达式。根据number参数值的不同, Rnd 函数生成的随机数也不同: ●number<0, 则每次使用相同的number作为随机数种得到的相同结果。 ●number>0, 则将生成随机序列中的下一个随机数。 ●number=0, 则将生成最近生成的数。 ●省略number,则生成序列中的下一个随机数。 注 在调用Rnd之前,先使用无参数的Randomize语句初始化随机数生成器,该生成器具 意有根据系统计时器得到的种子。为了生成某个范围内的随机整数,可使用以下公式: Int((上限-下限+ 1)*Rnd +下限) 3.编写代码 (1)新建Excel工作簿,按快捷键“Alt+F11”进入VBE环境。 (2)单击菜单“插入/模块”命令向工程中插入一个模块。 (3)在模块中编写以下代码: Option Base 1 Sub 幸运号码() Dim n As Integer, i As Integer, j As Integer Dim l() As Integer n = Application.InputBox("请输入需要产生幸运号码的数量:", "幸运号码", , , , , , 2) ReDim l(n, 7) As Integer For i = 1 To n For j = 1 To 7 Randomize l(i, j) = Int(10 * Rnd) Next Next For i = 1 To n For j = 1 To 7 Debug.Print l(i, j); Next Debug.Print Next End Sub (4)运行上面的宏,弹出如图所示的对话框,提示用户输入数据。 输入生成幸运号码的数量。 (5)单击“确定”按钮后在“立即窗口”输出生成的幸运号码 |
|