例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)单击“确定”按钮后在“立即窗口”输出生成的幸运号码
联系客服