随机数宏不返回所需的值

时间:2015-04-02 08:23:37

标签: vba

我创建了一个简单的模块,用于执行以下操作:

  • 生成0到999之间的随机数;
  • 如果number低于500,则指定值“lower”,否则指定“higher”
  • 在单元格A1和B1
  • 中写入随机数和赋值
  • 重复该过程100,000次。

问题是,即使数字大于或等于500,它也会返回指定值“较低”,即所有指定值,100,000,它们都是“较低”!

如果有人可以查看我在这个代码中出错的地方,我会很感激;我不是VBA的专家,但我想我自己可以做到这一点......:\

Sub MacroRanNum()

   Dim RunNum As Integer
   Dim Outcome As String

For i = 1 To 100000

   Randomize
   RanNum = Int((999 - 0 + 1) * Rnd + 0)

   If RunNum < 500 Then
   Outcome = "Lower"
   ElseIf RunNum >= 500 Then
   Outcome = "Higher"
   Else
   Outcome = "Error!"
   End If

Sheets("podatak").Cells(i, 1) = RanNum
Sheets("podatak").Cells(i, 2) = Outcome

Next i

End Sub

2 个答案:

答案 0 :(得分:2)

您的变量名称是

RanNum
,但是您检查了
RunNum

OPTION EXPLICIT可以帮助避免此类问题。

答案 1 :(得分:1)

您正在混合变量名称。您可以定义并检查RunNum,但您的随机值和显示值是RanNum。你永远不会测试你随机生成的值。