1. 首页 > 软件园

运用VBA在Excel中生成不重复的随机数 vba怎么用

作者:admin 更新时间:2024-06-27
摘要:随机数在数据分析和计算机编程中非常有用。但是,如果想要生成一组不重复的随机数,就需要用到VBA编程语言了。如果你刚开始学习VBA,那么本文将为你介绍如何使用VBA在Excel中生成不重复的随机数。步骤,运用VBA在Excel中生成不重复的随机数 vba怎么用

 

大家好,本网站为大家提供优质的、全新的游戏攻略,援助大家更愉悦地、更顺手地玩游戏,走过路过不要错过奥。

随机数在数据分析和计算机编程中特别有用。但是,若果想要生成一组不重复的随机数,就需要用到VBA编程语言了。若果你刚开始进修VBA,那么本文将为你介绍如何使用VBA在Excel中生成不重复的随机数。

步骤1:打开VBA编辑器

起首,打开Excel表格,并点击【开发工具】、【Visual Basic】打开VBA编辑器。

步骤2:新建模块

在VBA编辑器窗口,点击【插入】、【模块】,以便输入程序代码。

步骤3:输入程序代码

在“模块”的代码窗口里边输入以下VBA程序代码:

Sub RandomNumberSelect()

Dim i, j, k, x, rn, h, m, n

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

Set mysheet1 ("Sheet1") '定义工作表

mysheet1.Range("A3:G100").Value "" '清空单元格内容

n IsNumeric(mysheet1.Cells(2, 8)) '裁定填充的内容是否为数值

If mysheet1.Cells(2, 8) <> "" And n True And mysheet1.Cells(2, 8) > 1 Then '若果要生成的随机数个数的单元格不为空白,且为数值(数值>1),则:

h Int(mysheet1.Cells(2, 8)) '从第三行开始

For m 3 To h

Set myrange mysheet1.Range(mysheet1.Cells(m, 1), mysheet1.Cells(m, 6))

x 0 '初始值为0

j 0

Do

k Int(Rnd * 33 1) '1-33的随机整数

i (myrange, k) '统计数值在同一行(如:A3:F3)里边出现是次数

For Each rn In myrange '循环同一行单元格区域里边的每一个单元格

If i 0 And rn "" Then '若果没有出现过且单元格为空白

k '将数值写入该单元格里边

j j 1

Exit For '退出For循环

End If

Next

x x 1 '中间变量值递增1

If j 6 Or x 20000 Then '若果数值已经填充到第六列,或x条件满意

mysheet1.Cells(m, 7).Value Int(Rnd * 16 1) '从1-16里边随机选择出1个整数

Exit Do '退出Do循环

End If

Loop

Next

End If

End Sub

以上程序函数和思路解读:

(1)先裁定要生成的随机数组的个数是否为空白、或者非数值,条件满意再执行后边的程序,以提高运行速度;

(2)Rnd函数的取值范围是>0,且<1的随机数;

(3)Int是取整函数;

(4)For循坏每执行一次,将会执行一行的裁定;

(5)使用Do循环时,应当防止死循环的状况发生,所以,应当加设一个条件,以免无法求出结果时无法退出循坏。

步骤4:指定宏

回到Excel工作表界面,点击【插入】,在“外形”里边选择一个图形(如:长方形)并在Excel工作表上面绘制。在绘制好的图形上边单击右键,选择“指定宏”,选择已经在模块程序里边写好的宏的名称(如:RandomNumberSelect),然后点击【确定】。

步骤5:输入参数并生成随机数

在指定的单元格(如:H2)里面输入要生成随机数组的个数,点击已经绘制的图形按钮(已经指定该宏),即可生成随机整数。注意,同一行的前6个整数不重复。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将即刻删除。

大家注意,记起持续关注本游戏攻略网站,您的支持是我们最大的动力奥,我们会努力提供全网新的游戏攻略教程,加油。

本创作内容,未授权勿转载,必究权责。

免责说明:本文代表的是网站编辑的观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经确认,因此对本文以及其中全部或者部份内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。