rt

解决方案 »

  1.   

    Visual Basic 语言参考   Rnd 函数请参见
    数学摘要 | Randomize 语句
    返回一个 Single 类型的随机数。Rnd[(number)]
    参数
    number 
    可选。一个 Single 值或任何有效的 Single 表达式。 
    返回值
    如果 number 为 Rnd 生成 
    小于零 每次都相同的数字,并将 number 用作种子。 
    大于零 序列中的下一个随机数。 
    等于零 最近生成的数字。 
    未提供 序列中的下一个随机数。 备注
    Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
    示例
    本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer
    MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
      

  2.   

    最好语句前面再加一个 Randomize
      

  3.   

    Dim s As Single, i As IntegerPrivate Sub Command1_Click()
        Randomize    s = Rnd()
        i = Int(s * 10) '范围0-9
        Debug.Print i
        
    End Sub
      

  4.   

    另外一种生成随机数的方法:
    假设需要一个不超过5位数的随机的整数
    Private Sub Command1_Click()
        Dim s As Single, i As Integer,j As Integer    Randomize
        for j=1 to 5
           s = Rnd()
           i = Int(s * 10) '范围0-9
           j=j*10+i
        next
    End Sub现在j就是一个随机的整数了,不超过5位数
      

  5.   

    限制一个a到b 之间的随机数
    Randomize 
    debug.print a+int(rnd * (b-a))
      

  6.   

    用这个函数可以
    function rndint(a,b)'a 表示要取得的整数的最小值,b是要取得整数的最大值
       randomize
       rndint=int(rnd*(b-a)+1)+a
    end function