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如何随机生成不重复的自定代码的主要内容,如果未能解决你的问题,请参考以下文章

excel如何生成一定范围内不重复的随机整数?

VBS产生随机不重复的数字

C#如何生成随机不重复的数字

该如何让随机数不重复!!!我想不到了?

.net 下用C#产生一个永不重复10位随机数

生成不重复的随机数