为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下,关于vb的rnd函数的情况?如下题目所示

请问一下,关于vb的rnd函数的情况?如下题目所示

达令说 2021-07-07 10:07:05
Private Sub Form_Click()Dim a(10) As IntegerRandomizeFor i = 0 To 9a(i) = Int(21 + 50 * Rnd()) '可以拆开吗?NextFor i = 0 To 9Print a(i);Nextb = a(i)flag = 1 '假设不重复For i = 0 To 9If a(i) = b Thenflag = 0i = i - 1Exit ForEnd IfNextIf flag = 1 ThenPrint a(i)End IfEnd Sub为毛输出以后最后一个数是0 我改啊改啊的总有一个俩数的重复
查看完整描述

2 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

给你两个思路
1.每生成一个数
然后利用 application.worksheetfunction.countif(range("a:a"),新生成的数) 得出有没有重复
没有 则 ,就填入excel的格子内,比如按A列填下来
有则不填入excel
2.定义一个字符串 比如 str
没生成一个数,就利用 instr(1,str,"-" & 新生成的数 & "-") 判断在str 里面有没有存在
没有存在就是不重复,并利用 str = str & “-” & 新生成的数& "-" 更新str
看错 以为是excel 的问题呢
那你采用 第二个思路试试



查看完整回答
反对 回复 2021-07-11
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

Private Sub Form_Click()
Dim a(10) As Integer
   Randomize
   For i = 0 To 9
     a(i) = Int(21 + 50 * Rnd())
     
     If i > 0 Then
       flag = 1                        '假设不重复
       For j = 0 To i - 1
         If a(i) = a(j) Then
           flag = 0
           i = i - 1
           Exit For
         End If
       Next
     End If
     If flag = 1 Then Print a(i)
   Next
End Sub


查看完整回答
反对 回复 2021-07-11
  • 2 回答
  • 0 关注
  • 424 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信