三个vba生成不重复随机整数的案例

   2020-11-20 IP属地 浙江1420
核心提示:文章提供三个vba代码生成不重复随机数的案例供学习。
内容提要:文章提供三个vba代码生成不重复随机数的案例供学习。

vba不重复随机数案例一:
下面的代码,将在A1:A5000单元格产生1-5000的不重复随机整数。
PrivateSubvba不重复随机数()
   DimArr1(1To5000)AsBoolean
   DimArr2(1To5000,0)AsInteger
   t=Timer
   [A:A]=Empty
   Fori=1To5000
       num=Int(5000*Rnd+1)
       DoWhileArr1(num)
           num=Int(5000*Rnd+1)
       Loop
       Arr1(num)=True
       Arr2(i,0)=num
   Nexti
   [A1:A5000]=Arr2
EndSub


vba不重复随机数案例二:
在A1:A100中产生1-100的不重复随机整数,代码如下:
Subvba不重复随机数()
 DimTempArr1(99)AsInteger,TempArr2(0To99,1To1)AsInteger
 DimRndNumberAsInteger,iAsInteger
 Randomize(Timer)          '初始化随机数生成器
 Fori=0To99           '产生包含1-100的不重复的随机数列
     TempArr1(i)=i
 Nexti
 Fori=99To0Step-1
    RndNumber=Int(i*Rnd)
    TempArr2(99-i,1)=TempArr1(RndNumber)+1
    TempArr1(RndNumber)=TempArr1(i)
 Nexti
 '在A1:A100中输入这些数字
 Range("a1:a100").Value=http://www.ittribalwo.com/article/TempArr2
EndSub


vba不重复随机数案例三:
在A1:A10单元格产生10个0-100的随机整数,以下是代码:
Subvba不重复随机数()
  DimiAsLong
   i=100
   DimnumAsLong
   ReDimarr(i)AsLong
   ReDimArr2(i,0)AsLong
   DimxAsLong
   Forx=0Toi
       arr(x)=x
   Nextx
   Forx=0Toi
       num=Int(Rnd()*(i-x))
       Arr2(x,0)=arr(num)
       arr(num)=arr(i-x)
   Nextx
   Range("A1:A10")=Arr2
EndSub

 
反对 0举报收藏 0打赏 0评论 0
更多>相关评论
暂时没有评论,来说点什么吧
更多>同类办公
推荐图文
推荐办公
点击排行