Tạo giá trị số ngẫu nhiên trong VBA Excel

Khi lập trình ứng dụng excel ta cần tạo ra số ngẫu nhiên để tính toán.

Tôi sẽ giải thích trong excel có 2 hàm hay sử dụng để tạo ra số ngẫu nhiên

RAND , RANDBETWEEN

 RAND: hàm trả về 1 số ngẫu nhiên có giá trị từ 0 đến 0,9999...
 
 Sau này có thêm hàm RANDBETWEEN, giúp cho ta tạo số ngẫu nhiên nhanh hơn mà không cần nhân thêm 1 số nào đó

 

 Nếu dùng hàm RAND thì nếu muốn trả về số ngẫu nhiên từ 1 đến 10 thì ta phải


 

 

Ta cần sử dụng hàm Rdn viết tắt của tiếng anh là Random

Ví dụ tạo số ngẫu nhiên trong VBA

Dim SoNgauNhien  As Integer
SoNgauNhien  = Int((6 * Rnd) + 1)    ' Sinh ra số ngẫu nhiên trong phạm vi 1 đến 6

? Tại sao phải +1 ở ví dụ trên: vì để kết quả trả về không phải là số 0

Vậy bản chất của hàm Rnd VBA trả về cho từ giá trị từ 0 đến 0.99999....
 

? Tại sao phải sử dụng hàm Int ở ví dụ trên: vì để kết quả trả về không phải là số lẻ, ta cần số ngẫu nhiên là số nguyên (làm tròn)