使用Array数组生成不重复的随机数

2025-10-18 20:32:06

1、电脑上面打开Excel表格,然后使用【Alt+F11】组合键打开VBA编辑器。

使用Array数组生成不重复的随机数

2、在VBA编辑器的菜单栏上面点击【插入】、【模块】。

使用Array数组生成不重复的随机数

3、在模块代码框里边输入以下VBA程序代码,输入完代码程序后按下【F5】键运行。

Sub ArrayUse()

Dim i, j, k, x1, x2, x4, x5, str, str2, MyValue, MyArray(5)

On Error Resume Next    '忽略运行过程中可能出现的错误

MyValue = InputBox("请输入生成数组数量", "生成数组提示", 1)  '生成数组数量输入框

If MyValue >= 1 Then  '如果输入的数值大于或等于1,则

 For x4 = 0 To (Int(MyValue) - 1)  '执行 Int(MyValue) 次循环

  j = 0     'j初始化为0

  x2 = 0    'x2初始化为0

  str = ""  'str初始化为空白

  For x5 = 0 To 5

   MyArray(x5) = ""  '数组的每个数初始化为空白

  Next

 Do

  x1 = 0    'x1初始化为0

  k = Int(Rnd() * 33 + 1)  '随机数1-33

  For i = 0 To 5   '对数组MyArray()里面的每一个数访问

   If MyArray(i) <> k Then  '如果数组里面的数与随机数不相等,则

    x1 = x1 + 1    '不相等的次数增加1

   End If

  Next

  If x1 = 6 Then         '如果数组里面的数与随机数都不相等,则

   MyArray(x2) = k       '把随机数写入数组里面

   If str <> "" Then     '如果str不等于空白,则

    str = str & "," & k  '把随机数k拼接到str里面

   End If

   If str = "" Then      '如果str等于空白,则

    str = k   '把随机数k赋给str

   End If

   x2 = x2 + 1    '数组里面每写入一个数,则x2增加1

  End If

  j = j + 1       '每执行一次Do循环,则j增加1

  If j > 200000 Or x2 = 6 Then  '如果Do循环超过200000次或数组写入6个数,则

   If str2 <> "" Then  '如果str2不等于空白,则

    str2 = str2 & Chr(10) & Chr(13) & str  'str2+换行符+回车+str

   End If

   If str2 = "" Then   '如果str2等于空白,则

    str2 = str         '把str赋给str2

   End If

   Exit Do

  End If

 Loop

Next

MsgBox str2   '弹出生成的数组窗口

End If

End Sub

使用Array数组生成不重复的随机数

4、输入要生成随机数组的数量,点击【确定】后就可以生成随机数组。

使用Array数组生成不重复的随机数

5、程序函数、代码释义:

(1)MyArray(5)数组是从第0个开始,到第5个结束,共有6个数;Array前面的名称(如:My)可以根据个人喜欢改成其他的字符。

(2)在给数组赋值时,应当与数组里面的第几个相对应,如:MyArray(1)=10是把10赋给数组里边的第2位,而第几位可以是变量。

(3)对于重复使用的中间变量,在重复使用之前应当初始化,以免后续生成的数据出错。

(4)Int是取整函数,Rnd是大于等于0且小于1的随机数,Chr(10)是换行符,Chr(13)是回车符。

(5)程序里边使用生成的随机数逐一与数组里边的数比较(如:If MyArray(i) <> k Then),不相等时中间变量x1会自动加1,条件满足时就会把随机数赋给数组,这样就可以不用COUNTIF函数来判断。

(6)程序的执行顺序是自上而下,因此,(If str <> "" Then……End If)和(If str = "" Then……End If)的顺序不能颠倒,否则将会出错。

使用Array数组生成不重复的随机数

1、电脑上面新建一个文本文档,在文本文档里面输入【方法一步骤③】里边的代码(不含程序开头“Sub ArrayUse()”和结尾“End Sub”)并保存。

使用Array数组生成不重复的随机数

2、重命名文本文档,并把后缀名“.txt”改成“.vbs”。

使用Array数组生成不重复的随机数

3、双击已经重命名的vbs脚本程序,输入要生成随机数的数组数量并点击【确定】,vbs脚本生成的随机数完成。

使用Array数组生成不重复的随机数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢