Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3117|回复: 5

[已解决]如何用vba得不重复随机数?

[复制链接]
发表于 2010-2-22 21:10 | 显示全部楼层 |阅读模式

帮蓝色测试论坛新功能

随便偷了个题目来提问

在A2;A11用vba得到0~100之间的10个不重复随机整数

嘻嘻嘻嘻嘻嘻

估计这次没人扔臭鸡蛋了,大家扔代码吧  

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
最佳答案
2010-2-22 21:29

Sub tt()
    Dim m As Long
    Dim d As Object
    Set d = CreateObject("scripting.dictionary")
    Do
        m = Int(Rnd() * 101)
        d(m) = ""
    Loop Until d.Count = 10
    Range("A2:A11") = Application.Transpose(d.keys)
End Sub
发表于 2010-2-22 21:29 | 显示全部楼层    本楼为最佳答案   


Sub tt()
    Dim m As Long
    Dim d As Object
    Set d = CreateObject("scripting.dictionary")
    Do
        m = Int(Rnd() * 101)
        d(m) = ""
    Loop Until d.Count = 10
    Range("A2:A11") = Application.Transpose(d.keys)
End Sub
回复

使用道具 举报

发表于 2010-2-22 21:33 | 显示全部楼层

Sub aa()
    Dim i As Long
    i = 100
    Dim num As Long
    ReDim arr(i) As Long
    ReDim arr2(i, 0) As Long
    Dim x As Long
    For x = 0 To i
        arr(x) = x
    Next x
    For x = 0 To i
        num = Int(Rnd() * (i - x))
        arr2(x, 0) = arr(num)
        arr(num) = arr(i - x)
    Next x
    Range("A2:A11") = arr2
End Sub
回复

使用道具 举报

发表于 2010-2-23 11:50 | 显示全部楼层

搁浅是V的高手,学习一下,谢谢分享!
回复

使用道具 举报

发表于 2011-10-22 21:37 | 显示全部楼层
记录一下,方便日后查找
回复

使用道具 举报

发表于 2011-10-23 10:44 | 显示全部楼层
学习了哟。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 04:33 , Processed in 0.237354 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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