注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

VBA 产生不重复随机整数(转)  

2012-03-31 14:53:35|  分类: VB和VBA知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

VBA 产生不重复随机整数(转)

VBA 产生不重复随机整数

'方法一
Sub 指定数据段不重复随机数()
Dim s%
   Dim xm() As String, arr() As String '声明变量
   Dim 随机数个数%, 最小值%, 最大值%, 随机数值%
   随机数个数 = Range("c1")
   最小值 = Range("c2")
   最大值 = Range("c3")
    If 随机数个数 < 1 Or 最小值 > 最大值 Then Exit Sub
    If 随机数个数 > (最大值 - 最小值 + 1) Then Exit Sub
On Error Resume Next
Columns("A:A").ClearContents
ReDim arr(1 To 最大值 - 最小值 + 1)
For s = 1 To 最大值 - 最小值 + 1
    arr(s) = 最小值 + s - 1
Next
ReDim xm(1 To 随机数个数)
For s = 1 To 随机数个数
   随机数值 = Int(Rnd() * (最大值 - s - 最小值) + 最小值) '-----a语句
   xm(s) = arr(随机数值 - (最小值 - 1))        '-----下面一句对arr数组重新排序,本句为赋值
   arr(随机数值 - (最小值 - 1)) = arr(最大值 - s)
Next
   Sheets(1).Range("a1").Resize(随机数个数) = WorksheetFunction.Transpose(xm)
End Sub


'方法二
Sub 产生不重复随机整数()
Sub aa()
  Dim mr As Range
  For Each mr In Range("a1:a1000")     '---这样赋值单元格的A
    Do                '---do…loop until语句,指循环至loop until后的条件实现即终止
        mr = Int(Rnd() * 1000 + 1)     '----这样赋值单元格的
    Loop Until Application.CountIf(Range("a1:a1000"), mr) = 1
  Next mr
End Sub

'方法三
Sub aa()
  Range("a1:a65") = ""
  Dim num As Long, arr(1 To 65) As Long, arr2(1 To 65, 0) As Long, x As Long
  t1 = Timer
  For x = 1 To 65
      arr(x) = x
  Next x
  For x = 1 To 65
      num = Int(Rnd() * (65 - x) + 1)  '-----a语句
      arr2(x, 0) = arr(num)            '-----下面一句对arr数组重新排序,本句为赋值
      arr(num) = arr(65 - x + 1)
  Next x
  Range("a1").Resize(65) = arr2
  MsgBox "运行时间" & Format(Timer - t1, "0.000") & "秒"
End Sub

  评论这张
 
阅读(601)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017