请解释EXCEL随机生成指定范围不重复整数VB代码?

2024年12月01日 05:48
有1个网友回答
网友(1):

Dim a As Range, b As Range 定义变量a,b
Set a = Range("A1:A17") 设置a为区域A1:A17
a.ClearContents 清空A1:A17
Randomize 初始化随机数生成器
For Each b In a 下面到next是个循环给A1~A17挨个赋值
Do 这里到loop是个循环
b = Int(1 + Rnd * 36) 给单元格赋1~36中的随机值
Loop Until Application.WorksheetFunction.CountIf(a, b) = 1 检查赋值有没有重复,有重复值就重新赋值,直到没有重复值
Next
完成了

补充问题:如果要生成0-10之间的随机数。将b = Int(1 + Rnd * 36) 换成b = Int(Rnd * 11),因为Rnd随机数是大于等于0,小于1的。