如果用rnd(1),我发现每次运行时产生的随机数是一样的,即:第一次:23,21,2,12,22。然后第二次运行还是这几个数,根本不是随机出现的。请问怎样才能产生1-80之内的随机数,而且不要重复,且每次运行不能是一样的结果呢?

解决方案 »

  1.   

    Dim MyValue
    MyValue = Int((80* Rnd) + 1)   ' 生成 1 到 80 之间的随机整数。
      

  2.   

    Option ExplicitFunction Random_Number(ByVal UpperBound As Long, ByVal LowerBound As Long) As Long
        Randomize
        Random_Number = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound)
    End Function
    '在程式中實際使用的方式如下:Private Sub Command1_Click()
        Dim MyNum As Long
        '取得 1-100 的亂數值
        MyNum = Random_Number(80, 1)
        MsgBox MyNum
    End Sub
      

  3.   

    省略掉 Randomize 这个陈述式,而直接使用 Rnd 函数,重复执行程序取随机数的功能时,例如一些掷骰子的游戏,每次都会到相同的随机数,所以要得到每次不相同的随机数字必须使用Randomize
      

  4.   

    用Rnd()函数可产生0-1间的随机数
    Randomize不能省,否则每次运行都会得到同一组随机数
      

  5.   

    Randomize
    dim x as integer
    x=79*rnd+1
      

  6.   

    用Rnd()函数可产生0-1间的随机数
    Randomize不能省,否则每次运行都会得到同一组随机数
                      
    '===============
    同意清心層!
    dim x as integer
    Randomize
    x=int(79*rnd+1)
      
      

  7.   

    各位大哥,虽然每次重复的问题解决,但我是要整型的数,int(79*rnd+1)难免会产生重复数,例如rnd生成相近的浮点数时,int(79*rnd+1)就有可能相同阿。
      

  8.   

    我知,随机是这样的,难免产生相同的int(79*rnd+1),我是问有啥好办法能避免重复,我使用循环取数,发现相同的就跳下一次,征求一下好点的方法嘛!
      

  9.   

    使用Randomize 初始化rnd,