2011-04-15 78 views
0

我有以下代碼:隨機值

Low = 10 
High = 25 
R = Int((High - Low + 1) * Rnd() + Low) 

Sheets("ITEMS DATA").Range("D4:D39").Value = R 

我想爲表示返回一個隨機數的範圍內,但它返回相同的隨機數的整個範圍(D4:D39) 。我想返回一個不同的隨機數字來表示範圍,但不知道如何。

回答

2

@Mike:

試試這個:

Low = 10 
High = 25 
For c = 4 To 39 
    R = Int((High - Low + 1) * Rnd() + Low) 
    Sheets("ITEMS DATA").Cells(c, 4).Value = R 
Next 

當然,你也可以改變方法的兩個參數在細胞()根據自己的喜好。

+0

這就是我的意思:臉紅: – Pete 2011-04-15 14:46:29

1

您已創建一個隨機值,將其分配給R,然後將該值放入您的範圍。有幾種方法可以做你想做的事。我假設有一個很好的理由不只是公式直接粘貼到細胞內,所以:

Range("B1:B21").Formula = "=Int((A1 - A2)+1) * Rand() + A2" 

將做到這一點,假設A1和A2分別持有高和低。

編輯刪除錯誤的答案,這一個已經過測試。

+0

我試過你的第一個例子,它做同樣的事情。我無法讓你的第二個例子工作。 – Mike 2011-04-15 13:20:36

+0

DOh,當然,你需要遍歷設置每個單元格的範圍,而不是一次設置整個範圍。第二個例子會有同樣的問題。我認爲Range.Formula是要走的路。 – Pete 2011-04-15 14:35:50

+0

你在說你的第一個例子或第二個例子嗎?如果是的話,我會改變它說的地方。Range.Formula?謝謝 – Mike 2011-04-15 14:38:45