文档详情

excel中生成随机数的方法.doc

发布:2017-05-25约2.1千字共3页下载文档
文本预览下载声明
生成随机数 悬赏分:0 - 解决时间:2008-4-12 19:15 如何生成一个五位的、没有0的、每个数位都不重复的随机数? 提问者: golden_yi - 秀才 三级 最佳答案 Private Sub Form_Click() Dim a(1 To 5) As Integer, b As Long Randomize For i = 1 To 5 a(i) = Int(Rnd * 8 + 1) For j = 1 To i - 1 If a(i) = a(j) Then i = i - 1 Next j Next i For i = 1 To 5 b = Val(b CStr(a(i))) Next i Print b End Sub 回答者:superman2008cc - 助理 二级 4-6 14:15 提问者对于答案的评价: 比较简洁 评价已经被关闭????目前有 1 个人评价 好 100% (1) 不好 0% (0) 相关内容 ? C语言中怎样生成随机数? ? VB生成随机数的问题. ? 急!!!用C语言编写按概率生成随机数!!! ? EXCEL 如何生成随机数? 要求能够指定生成的随机数的... ? 用sql server生成随机数 ? 更多相关问题 查看同主题问题:生成 随机数 其他回答????共 3 条 用,RND函数啊 具体用法百度上搜,多了去了 回答者:thought007 - 助理 三级 4-4 20:46 2楼还应该加个 randomize 回答者:vienaldoxx - 经理 四级 4-4 21:09 这种问题现在怎么这么多 做个函数吧 Public Function GetRndNotRepeat(ByVal NumMin As Integer, ByVal NumMax As Integer, ByVal N As Integer) 获取NumMin~NumMax范围内的N个不重复随机整数 Dim arr() As Integer Dim b() As Boolean Dim x As Integer Dim i As Integer If N NumMax - NumMin + 1 Or NumMax = NumMin Or N 1 Then ReDim arr(-1 To -1) GetRndNotRepeat = arr Exit Function End If ReDim arr(N - 1) ReDim b(NumMin To NumMax) Randomize For i = 0 To N - 1 Do x = Int(Rnd * (NumMax - NumMin + 1)) + NumMin Loop While b(x) b(x) = True arr(i) = x Next i GetRndNotRepeat = arr End Function 调用方法 Private Sub Command1_Click() a = GetRndNotRepeat(1, 9, 5) If UBound(a) -1 Then For i = 0 To UBound(a) Print CStr(a(i)); Next i End If End Sub A1:G1 Dim mr As Range Dim i As Integer For Each mr In Range(a1:g1) Do While Application.CountIf(Range(a1:g1), mr) 1 Or mr = 2 mr = Int(Rnd() * 8 + 1) Loop Next Rand函数不过避免重复,但可以用变通的方法,比如: 在A列中填充从0001~1000的考号,在B列中生成1000个随机数,然后以B列对整表排序,这时A列的考号自动打乱了。 {=SMALL(IF(ISNA(MATCH(ROW(INDIRECT(1:251)),E$2:E2,)),ROW(INDIRECT(1:251))),CEILING((253-ROW())*RAND(),1))} A1 输入 =rand() 下拉至A1000 B1 输入 1, B2 输入 2, 下拉至 B1000, 即B1000 是 1000 点选a1:b1000, 以A列排序 B列便是 1-1000的随机数, 不顺序用途:返回一个大于等于0小于1的随机数,每次计算工作表(按F9键)将返回一个新的数值。 语法:RAND() 实例:公式“=RAND()*1000”返回一个大于等于0、小于1000的随
显示全部
相似文档