EXCEL如何随机生成不重复的自定代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL如何随机生成不重复的自定代码相关的知识,希望对你有一定的参考价值。
如单元格A1\A2\A3\A4\.....分别为带字母的数字如 D01\D02\D03\D04\...., 单元格B1\B2\B3\B4\....如何随机生成不重复的D01\D02\D03\D04\.....
参考技术A 代码如下:Sub m()
行 = Range("A65536").End(3).Row
For i = 1 To 行
kkk:
Randomize
x = Int(Rnd * 行) + 1
If Application.CountIf(Range("B:B"), Range("A" & x)) > 0 Then
GoTo kkk
Else
k = k + 1
Cells(k, "B") = Range("A" & x)
End If
Next i
End Sub 参考技术B 以C列为辅助列,输入=RAND() 然后向下填充公式
在B1单元格输入以下公式,然后向下填充公式
=INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0))
即可得到A列不重复的随机数。追问
不行哦,B列都为0
追答公式有误,更正如下:
=INDEX(A:A,MATCH(LARGE(C:C,ROW(A1)),C:C,0))
详见附图
VBS产生随机不重复的数字
如题求一段VBS代码,要求产生6个从1到33的随机号码,6个号码内不允许出新同样的号码,然后再产生一个随机的特殊号码,输出的时候要求从小到大排列,特殊号码排在最后面;双色球,你懂得。
参考技术A Dim arr(33) '33个数初始值为空Randomize '随机数种子
For i=1 To 6 '生成6个不重复的数字
x = Int(Rnd * 33)+1 '生成一个1-33的随机数
While arr(x) '如果随机数已经存在就重新生成
x = Int(Rnd * 33)+1
Wend
arr(x)=1 '把不存在的随机数标志为1,表示已经生成过了
Next
For i=1 To 33 '从1-33循环输出已经生成的随机数
If arr(i) Then ret = ret & i & " " '组合随机数保存为ret
Next
x = Int(Rnd * 33)+1 '特殊号码
WScript.Echo ret & "+ " & x '输出结果
以上是关于EXCEL如何随机生成不重复的自定代码的主要内容,如果未能解决你的问题,请参考以下文章