Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: qihongju

[已解决]各位哥哥姐姐帮帮忙,怎么样生成不重复的随机数?

[复制链接]
 楼主| 发表于 2013-10-11 18:03 | 显示全部楼层
xdragon 发表于 2013-10-11 17:51
我测试了好多次的。。。。

又有问题了, 如果输入上限是10那就会输出10个不重复的数,对吧? 我试的时候怎么会是6个呢?
回复

使用道具 举报

 楼主| 发表于 2013-10-11 18:07 | 显示全部楼层
xdragon 发表于 2013-10-11 17:51
我测试了好多次的。。。。

问题我解决了,还是我指定区域的时候出错了{:111:}
回复

使用道具 举报

发表于 2013-10-11 18:21 | 显示全部楼层    本楼为最佳答案   
qihongju 发表于 2013-10-11 18:07
问题我解决了,还是我指定区域的时候出错了

Sub 生成不重复随机数()  '相当于将指定范围的有序整数随机排列
    Dim i As Long, j As Long
    '指定上限,默认为100,默认的下限是1
    i = Application.InputBox("请输入上限:" & Chr(10) & "输入1000即表示产生1到1000的不重复随机数" & " 以此类推!范围在1--60000之间。" & Chr(10) & "结果产生在新工作表。" & Chr(10) & "如果输入的数超过10000,可能要计算3-5秒,请等候结果显示!", "输入上限", 10, , , , , 1)
    If i = False Or i < 1 Then Exit Sub  '如果选择取消或者数字小于0则退出程序
    Dim arr1, A, B, temp
    ReDim arr1(1 To i)
    For j = 1 To i
        arr1(j) = j
    Next
    For j = 1 To i  '在下限与上限之间循环,将数组Arr1中的数据打乱
        A = Int(Rnd() * i) + 1
        B = Int(Rnd() * i) + 1
        temp = arr1(A)
        arr1(A) = arr1(B)    '
        arr1(B) = temp
    Next
    '将数组的值输出到单元格中
    Dim rngs As Range, rng As Range
    Set rngs = Application.InputBox("选择输出的数据区域", , , , , , , 8)
    j = 0
    For Each rng In rngs
    If j = UBound(arr1) Then Exit Sub
        j = j + 1
        Range(rng.Address) = arr1(j)
    Next
End Sub

增加了可以选择输出区域,那你要少点选的区域小点就行了
回复

使用道具 举报

 楼主| 发表于 2013-10-11 18:35 | 显示全部楼层
xdragon 发表于 2013-10-11 18:21
Sub 生成不重复随机数()  '相当于将指定范围的有序整数随机排列
    Dim i As Long, j As Long
    '指 ...

嗯嗯  谢谢!{:301:}
回复

使用道具 举报

 楼主| 发表于 2013-10-11 19:24 | 显示全部楼层
xdragon 发表于 2013-10-11 18:21
Sub 生成不重复随机数()  '相当于将指定范围的有序整数随机排列
    Dim i As Long, j As Long
    '指 ...

1335315624这是我的QQ号     能不能加上我啊?我刚开始学习VBA,有很多不会的东西。。。可不可以请教你?{:091:}
回复

使用道具 举报

发表于 2013-10-11 22:42 | 显示全部楼层
努力学好VBA,努力学习。
回复

使用道具 举报

 楼主| 发表于 2013-10-12 09:32 | 显示全部楼层
yezhikang 发表于 2013-10-11 22:42
努力学好VBA,努力学习。

{:28:} 努力!!
回复

使用道具 举报

发表于 2013-10-17 16:01 | 显示全部楼层
代码简洁实用,赞一个
回复

使用道具 举报

发表于 2013-10-17 16:02 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-25 06:22 , Processed in 0.179367 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表