2015-04-02 63 views
0

我已經創建,是爲了做以下一個簡單的模塊:隨機數宏不會返回所希望的值

  • 生成0和999之間的隨機數;
  • 如果數低於500,分配值「下」,否則爲「高」
  • 寫在單元格A1和B1
  • 重複該過程10萬次的隨機數和分配的值。

問題是,即使數字大於或等於500,即所有賦值爲100,000,它們都是「較低」,它會返回賦值「lower」!

我很感激,如果有人可以檢查我的錯在哪裏這個代碼;我不是在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

如果我是你,我會只打一次Randomize。與人們相信這可以使數字隨意性相反。 (PS:這不能回答你的問題)。 – 2015-04-02 08:34:56

+0

感謝您的建議!我會檢查,我讀到Randomize應該每次調用,所以我把它放在循環中... – strugar 2015-04-03 09:26:32

回答

1

你在混合你的變量名。你可以定義並檢查RunNum,但是你的隨機值和你的顯示值是RanNum。你從不測試你隨機生成的值。

2

你的變量名是

RanNum
但你檢查
RunNum

OPTION EXPLICIT可以幫助避免這樣的問題。

+0

哦,該死的,多麼愚蠢的錯誤,哈哈......我正在檢查代碼,並認爲有什麼錯代碼,我沒有看錯別字,呃...非常感謝! – strugar 2015-04-02 08:37:02