使用Rnd一次又一次地获得相同的值

时间:2014-01-22 20:06:38

标签: vba

开始:

Randomize()
        'randomValue = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd())) + lowerbound
        Dim value As Integer = CInt(Int((2 * Rnd()) + 1))
        intNumber = value - 1
            Dim y As Integer
        For y = 0 To 1
            ' Check arrNumber (y)
            'If intnumber has already been selected,
            'Then go and select another one.
            If intNumber = arrNumber(y) Then
                GoTo Start
            End If
        Next y

我再次获得相同的价值变量值

1 个答案:

答案 0 :(得分:1)

由于您发布了一份不完整且无法运行的代码示例,因此很难确定您的问题所在。

我将代码缩减为核心:

Option Explicit

Sub Randomize()

    Dim value As Integer
    Dim i As Integer

    For i = 1 To 100
        value = CInt(Int((2 * Rnd()) + 1))
        Debug.Print value
    Next i
End Sub

此代码将值1和2随机打印到立即窗口(按CTRL-G打开它)。小范围[1,2]是由于缩放值为2.它可以很容易地增加。

所以Rnd()似乎工作正常。