如果我们要用VBA生成一列不重复的随机整数,可以用下面的VBA代码,可以在A1:A100中产生1-100的不重复随机数。
Sub RndNumberNoRepeat()
Dim RndNumber, TempArray(99), i As Integer
Randomize (Timer) '初始化随机数生成器
For i = 0 To 99 '产生包含1-100的不重复的随机数列
TempArray(i) = i
Next i
For i = 99 To 0 Step -1
RndNumber = Int(i * Rnd)
'在A1:A100中输入这些数字
Cells(100 - i, 1) = TempArray(RndNumber) + 1
TempArray(RndNumber) = TempArray(i)
Next i
End Sub
rand函数
=INT(100*RAND()+1)
=100*FIXED(RAND())+1
RAND() 表示取0-1的随机小数(1不取到,0取到)
FIXED表示向小取整:例如4.5取4
由于RAND() 表示大于等于0小于1的数,所以最后还要加1才等于1-100之间的整数。
=VLOOKUP(MID(A1,9,2),对照表!$A$1:$B$100,2,FALSE)
=ROUND(RAND()*100,0)