VBA中rnd取随机数,怎么取不等于几的随机数

例如我想取1-45的随机整数,就写a=int(45*rnd+1)
那么我想取1-45的随机整数,同时a不等于5,6,8,15,21怎么写
再那么我想取1-45的随机整数,同时a不等于变量b,c,d怎么写

止血方法,不编程序,
定义数组arr1,将1、2、3……45循环push到数组arr1中,
定义数组arr2,将5、6、8、15、21循环push到数组arr2中,
双循环查找arr2中每一个元素在arr1中的位置,查找结果为-1,则删除arr2该元素,否则删除arr1中相应位置的元素,
令n=int(arr1长度*rnd),提取a=arr1[n]
后面一个问题,差不多如法炮制,但不需要预先push b,c,d的值到数组arr2中,因为b、c、d 的值会随时改变的,临时取随机数之前,直接 arr[0]=b、arr[1]=c、arr[2]=c
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-16
可以设一个40单元的数组,顺序赋1-45中不等于5,6,8,15,21的整数值。然后在这40单元里随机取。。。
相似回答