分享

【VBA 实例030】彩票幸运号码 (动态数组和随机函数)

 黄河简笔画 2020-04-11

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多