在excel里生成不重复的随机整数

我需要在excel里生成如下随机数:A1到A20,产生1-20不重复随机整数B1到B20,产生21-40不重复随机整数……直到Y1到Y20生成481-500不重复随机数上... 我需要在excel里生成如下随机数:
A1到A20,产生1-20不重复随机整数
B1到B20,产生21-40不重复随机整数
……
直到Y1到Y20生成481-500不重复随机数

上述操作如何在VBA中一步完成?
代码,谢谢。可用追加50分。
二楼的答案可以产生足够的不重复随机整数,但都是在A列。随机数的大小也不符合要求。
展开
 我来答
凌文元LWY
高粉答主

推荐于2016-02-26 · 每个回答都超有意思的
知道大有可为答主
回答量:3.6万
采纳率:76%
帮助的人:1.6亿
展开全部

1、选择A1:A100单元格,输入=RAND()   按Ctrl+Enter组合键结束;

2、选择B1:B100单元格,输入=RANK(A1,A:A)  按Ctrl+Enter组合键结束,生成100个不重复的随机整数。

 

详见附图

 

jh_richey
2010-05-19 · TA获得超过1161个赞
知道小有建树答主
回答量:1442
采纳率:100%
帮助的人:197万
展开全部
Sub 不重复随机数()
Dim i As Long, j As Long
i = Application.InputBox("请输入上限:" & Chr(10) & "输入1000即表示产生1到1000的不重复随机数" & " 以此类推!范围在1--60000之间。" & Chr(10) & "结果产生在新工作表。" & Chr(10) & "如果输入的数超过10000,可能要计算3-5秒,请等候结果显示!", "输入上限", 100, , , , , 1)
If i = False Or i < 1 Then Exit Sub
Randomize
Dim myArr
Worksheets.Add
Application.ScreenUpdating = False
Range("a1") = 1
Range("a1").DataSeries 2, , , 1, i
myArr = Range("a1:b" & i)
For j = 1 To i
a = Int(Rnd() * i) + 1
b = Int(Rnd() * i) + 1
c = myArr(a, 1)
myArr(a, 1) = myArr(b, 1)
myArr(b, 1) = c
DoEvents
Next
Range("a1:a" & i) = myArr
Application.ScreenUpdating = True
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HuaGeG
推荐于2016-01-04 · TA获得超过7713个赞
知道大有可为答主
回答量:8038
采纳率:26%
帮助的人:2635万
展开全部
Sub ss()
Range("a1:y20").Clear
For n = 1 To 500
j = Int((n - 1) / 20) + 1
Do
i = Int(Rnd * 20) + 1
Loop While Cells(i, j) <> ""
Cells(i, j) = n
Next
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
媛媛home
2010-05-19 · 超过16用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:50.7万
展开全部
在工具栏中选加载宏
添加分析工具基本统计变量等
之后数据选项里就会有统计描述填加随即变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小李无刀
2010-05-19 · TA获得超过6360个赞
知道大有可为答主
回答量:8829
采纳率:78%
帮助的人:5504万
展开全部
生成一个整数,然后判断是不是和前面有重复,如果有重复,重新生成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式