手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

使用VBA生成满足条件的三个随机数

时间:2024-10-12 12:14:19

1、打开Excel表格后,按下键盘上面的【Alt+F11】组合键打开VBA编辑器,也可以点击【开发工具】、【Visual Basic】打开VBA编辑器。

使用VBA生成满足条件的三个随机数
使用VBA生成满足条件的三个随机数

2、在VBA编辑器的菜单栏上面点击【插入】、【模块】插入代码模块,或者依次按下【Alt】、【I】、【M】键插入代码模块。

使用VBA生成满足条件的三个随机数

3、在模块的代码框里面输入以下程序代码:Sub RnNumber()Dim R1, R2, R3, Ra, Rm, Ri, Ba, Bi, iOn Error Resume Next '忽略运行过程中可能出现的错误Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表Sheet1i = 0 'i初始化为0mysheet1.Range("A1:A3") = "" '清空A1:A3单元格里面的内容Doi = i + 1 '每执行一次循环,i递增1R1 = Rnd() * 1000 '生成0-1000之间的随机数R2 = Rnd() * 1000R3 = Rnd() * 1000Ra = Application.WorksheetFunction.Max(R1, R2, R3) '获取随机数里面的最大值Rm = Application.WorksheetFunction.Median(R1, R2, R3) '获取随机数里面的中间值Ri = Application.WorksheetFunction.Min(R1, R2, R3) '获取随机数里面的最小值Ba = (Ra - Rm) <= Rm * 0.1 '最大值与中间值之差,然后与中间值*10%比较Bi = (Rm - Ri) <= Rm * 0.1 '中间值与最小值之差,然后与中间值*10%比较If Ba = True And Bi = True Then '如果最大值和最小值与中间值偏差不超过10%,则 mysheet1.Cells(1, 1) = R1 '把随机数R1写入A1单元格 mysheet1.Cells(2, 1) = R2 mysheet1.Cells(3, 1) = R3 Exit Do '退出Do循环End IfIf i1 > 200000 Then '如果循环次数超过200000次,则退出Do循环 Exit DoEnd IfLoopEnd Sub

使用VBA生成满足条件的三个随机数

4、输入完程序之后,点击VBA编辑器的工具栏里面的“运行”图标运行程序。

使用VBA生成满足条件的三个随机数

5、回到Excel表格界面,将会看到生成所需的随机数。

使用VBA生成满足条件的三个随机数

6、VBA程序解读:(1)Rnd函数的随机数值范围是大于等于0且小于1,在此基础上藜局腑载添加一些参数就可以扩大随机的范围,以变成所需的随机数范围。(2)在VBA程又挨喁钒序里面,并不能直接使用Max、Median、Min来获取数值的最大值、中间值、最小值,此时只能借用Excel表格的函数功能Application.WorksheetFunction。(3)在VBA程序里边乘以10%时,由于没法使用“%”,所以就乘以0.1,同时也可以减少VBA程序的运算量。(4)使用Do循环时,应当尽量的避免死循环的出现(如:循环超过指定的次数则强制退出),以免Excel表格出现卡死、无响应的现象发生。

使用VBA生成满足条件的三个随机数
© 手抄报圈