2014年2月23日 星期日

VBA 產生隨機數字 (random & randomize 用法)

  (1) 用 "時" "分" "鈔" 做種 , 作為 每次 / 每組 新隨機數字根據
   seed = TimeValue("00:" & Format(Second(Time), "00") & ":" & Format(Minute(Time), "00"))
   Randomize (seed)
   Range("A1") = Int((100) * Rnd + 1)

 (2) 如 ran(0) , ran(-1) or rasn(-2) .... , 會產生和上一次一樣的隨機數字

 (3) Randomize  後面不加任何數值 , 會用電腦系統中的時間做seed


the below is FROM Microsoft WEBSITE

Rnd Function

Show All
Returns a Single containing a random number.
Syntax
Rnd[(number)]
The optional number argument is a Single or any valid numeric expression.
Return Values
IF NUMBER ISRND GENERATES
Less than zeroThe same number every time, using number as the seed.
Greater than zeroThe next random number in the sequence.
Equal to zeroThe most recently generated number.
Not suppliedThe next random number in the sequence.
Remarks
The Rnd function returns a value less than 1 but greater than or equal to zero.
The value of number determines how Rnd generates a random number:
For any given initial seed, the same number sequence is generated because each successive call to the Rndfunction uses the previous number as a seed for the next number in the sequence.
Before calling Rnd, use the Randomize statement without an argument to initialize the random-number generator with a seed based on the system timer.
To produce random integers in a given range, use this formula:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

      
Here, upperbound is the highest number in the range, and lowerbound is the lowest number in the range.
 NOTE    To repeat sequences of random numbers, call Rnd with a negative argument immediately before usingRandomize with a numeric argument. Using Randomize with the same value for number does not repeat the previous sequence.

Example

 NOTE   Examples that follow demonstrate the use of this function in a Visual Basic for Applications (VBA) module. For more information about working with VBA, select Developer Reference in the drop-down list next toSearch and enter one or more terms in the search box.
This example uses the Rnd function to generate a random integer value from 1 to 6.
Dim MyValue
' Generate random value between 1 and 6.
MyValue = Int((6 * ) + 1)


沒有留言:

張貼留言