Office中国论坛/Access中国论坛

标题: 交流 [打印本页]

作者: 欢欢    时间: 2008-8-1 17:03
标题: 交流
今天匆忙,写了一篇博客
详细见不重复随机数vba(原创)http://hi.baidu.com/huanhuanxiaozhua/blog为什么有些会数据不全。也可见附件
作者: pureshadow    时间: 2008-8-2 00:25
Sub 产生不重复随机整数()
Dim mr As Range
For Each mr In Range("a1:a10")
    Do 'do…loop until语句,指循环至loop until后的条件实现即终止
    mr = Int(Rnd() * 10 + 1)
    Loop Until Application.CountIf(Range("a1:a10"), mr) = 1
Next mr
End Sub

BY 兰色幻想
作者: pureshadow    时间: 2008-8-2 00:25
Sub aa()
  Range("a1:a65536") = ""
  Dim num As Long, arr(1 To 65536) As Long, arr2(1 To 65536, 0) As Long, x As Long
  t1 = Timer
 For x = 1 To 65536
   arr(x) = x
 Next x
 For x = 1 To 65536
   num = Int(Rnd() * (65536 - x) + 1)
   arr2(x, 0) = arr(num)
   arr(num) = arr(65536 - x + 1)
 Next x
 Range("a1").Resize(65536) = arr2
 MsgBox "运行时间" & Format(Timer - t1, "0.000") & "秒"
End Sub

BY兰色幻想
作者: 欢欢    时间: 2008-8-2 08:59
看了我的代码应该知道我要表达的东西,我说的是指定数据段,指定个数的不重复随机数,可能是我没有表达好,我的代码再看看估计可以改
作者: 欢欢    时间: 2008-8-2 09:18
哈哈,刚才试了一下小妖的 Sub 产生不重复随机整数()  这也是个很好的思路,我光停留再取数值段的不重复的随机数的思想上了,我觉得论坛多发些交流类的帖子,比较好




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3