Là 1 hàm trả về 1 con số bất kỳ nào nó dựa trên các dữ liệu từ chip của máy tính.
Trong VBA, bạn có thể tạo các giá trị ngẫu nhiên bằng cách sử dụng các hàm Rnd vba và Randomize vba.
Hàm Rnd trả về một giá trị số thực ngẫu nhiên trong khoảng từ 0 đến 1 (không bao gồm 1).
Để tạo số ngẫu nhiên trong một phạm vi cụ thể, bạn cần kết hợp với phép toán.
' Tạo một số ngẫu nhiên từ 0 đến 1
Dim randomNumber As Double
randomNumber = Rnd
MsgBox randomNumber
Để đảm bảo rằng mỗi lần chạy chương trình, bạn có một chuỗi số ngẫu nhiên khác nhau, bạn có thể sử dụng hàm Randomize. Hàm này sẽ sử dụng thời gian hệ thống làm hạt giống để tạo ra các giá trị ngẫu nhiên khác nhau mỗi lần.
' Khởi tạo hạt giống ngẫu nhiên
Randomize
' Tạo một số ngẫu nhiên từ 0 đến 1
Dim randomNumber As Double
randomNumber = Rnd
MsgBox randomNumber
Nếu bạn muốn tạo số nguyên ngẫu nhiên trong một phạm vi xác định (ví dụ từ 1 đến 100), bạn có thể nhân số ngẫu nhiên với phạm vi mong muốn và làm tròn kết quả.
' Khởi tạo hạt giống ngẫu nhiên
Randomize
' Tạo số nguyên ngẫu nhiên từ 1 đến 100
Dim randomInt As Integer
randomInt = Int((100 - 1 + 1) * Rnd + 1)
MsgBox randomInt
Nếu bạn muốn tạo số thực ngẫu nhiên trong một phạm vi cụ thể (ví dụ từ 10 đến 20), bạn có thể thay đổi phạm vi như sau:
' Khởi tạo hạt giống ngẫu nhiên
Randomize
' Tạo số thực ngẫu nhiên từ 10 đến 20
Dim randomFloat As Double
randomFloat = (20 - 10) * Rnd + 10
MsgBox randomFloat
Rnd: Tạo số thực ngẫu nhiên từ 0 đến 1.
Randomize: Khởi tạo hạt giống để đảm bảo số ngẫu nhiên không lặp lại.
Tạo số ngẫu nhiên trong phạm vi cụ thể: Sử dụng công thức Int((upperBound - lowerBound + 1) * Rnd + lowerBound) cho số nguyên và ((upperBound - lowerBound) * Rnd + lowerBound) cho số thực.
Khi lập trình ứng dụng với VBA 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)
Tìm kiếm:
Tạo giá trị số ngẫu nhiên trong VBA Excel