Tạo số ngẫu nhiên bằng hàm VBA RND

Số ngẫu nhiên VBA trong Excel

Để tạo các số ngẫu nhiên trong vba, chúng ta có một hàm có sẵn gọi là RND . Nó chỉ cần một đối số là một số để tạo ra các số ngẫu nhiên và đây cũng là một tham số tùy chọn. Nó sẽ tạo ra các số ngẫu nhiên lớn hơn 0 và nhỏ hơn 1.

Điều này hoạt động giống hệt như hàm excel “RAND”. Như tôi đã nói trong hàm trang tính “RAND”, trong VBA chúng ta cũng có thể tạo các số ngẫu nhiên lớn hơn 0 nhưng nhỏ hơn 1.

Bây giờ hãy xem cú pháp của hàm “RND”.

[Số]: Chúng ta có thể chuyển đối số theo ba cách.

  • Nếu chúng ta chuyển số là <0, nó sẽ tiếp tục tạo ra cùng một số ngẫu nhiên mọi lúc.
  • Nếu chúng ta chuyển số là 0, nó sẽ lặp lại số gần đây nhất mà nó đã cho.
  • Nếu chúng ta vượt qua số> 0, nó sẽ tiếp tục cung cấp cho bạn các số ngẫu nhiên khác nhau tức là số ngẫu nhiên tiếp theo trong dãy.

Làm thế nào để tạo số ngẫu nhiên bằng mã VBA?

Bạn có thể tải xuống Mẫu Excel Số Ngẫu nhiên VBA này tại đây - Mẫu Excel Số Ngẫu nhiên VBA

Ví dụ 1

Bây giờ chúng ta sẽ xem ví dụ đơn giản về việc sử dụng hàm “RND”. Làm theo các bước dưới đây để tự viết mã VBA.

Bước 1: Khai báo biến là “Số nguyên” trong VBA

Mã:

 Sub Rnd_Example1 () Dim K As Integer End Sub 

Bước 2: Bây giờ gán giá trị cho biến “k” thông qua hàm “ RND ”.

Mã:

 Sub Rnd_Example1 () Dim K As Integer K = Rnd () End Sub 

Bước 3: Hiển thị giá trị được trả về bởi biến “k” trong hộp thông báo .

Mã:

 Sub Rnd_Example1 () Dim K As Integer K = Rnd () MsgBox K End Sub 

Bây giờ hãy chạy macro excel và xem kết quả là gì.

Hãy nhìn những gì đã xảy ra.

Nó hiển thị kết quả là 1 trong đó hàm “RND” chỉ có thể trả về các số lớn hơn 0 nhưng nhỏ hơn 1.

Chắc hẳn bạn đang nghĩ về điều sai trái ở đây là gì.

Điều sai ở đây là kiểu dữ liệu mà chúng ta đã gán cho biến “k”.

Nếu bạn nhìn lại biến mà chúng ta đã khai báo, chúng ta đã gán kiểu dữ liệu là Integer. Vì chúng tôi đã gán biến là Số nguyên, nên nó chỉ có thể hiển thị các số nguyên trong khoảng từ -32768 đến 32767.

Bất cứ khi nào RND trả về số thập phân, VBA sẽ chuyển đổi số thập phân thành số nguyên gần nhất, tức là 1.

Vì vậy, để làm cho công thức hoạt động đúng, hãy khai báo biến là “ Double ”.

“Double” là kiểu dữ liệu trong VBA có thể chứa các giá trị thập phân.

Mã:

 Sub Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub 

Bây giờ mã và xem kết quả là gì.

Nhấp vào ok và chạy thêm một lần nữa và xem kết quả là gì.

Lần này chúng tôi nhận được một kết quả khác. Vì “RND” về bản chất là một hàm dễ bay hơi, nó tái tạo các kết quả khác nhau mỗi khi bạn thực thi mã.

Ví dụ # 2 - Nhận cùng một số ngẫu nhiên mọi lúc

Như chúng ta đã thấy trong ví dụ trước, hàm “RND” tái tạo kết quả mỗi khi chúng ta thực thi mã. Để nhận được cùng một số ngẫu nhiên, lặp đi lặp lại, chúng ta cần chuyển đối số là số không.

Mã:

 Sub Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub 

Điều này sẽ tạo ra cùng một số lặp đi lặp lại khi chúng ta thực thi mã.

Ví dụ # 3 - Tạo Số Ngẫu nhiên Toàn bộ

Chúng tôi cũng có thể tạo số nguyên bằng cách sử dụng hàm VBA khác hoặc các số đầu vào khác. Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub Rnd_Example3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub 

Mã này sẽ tạo ra các số nguyên ngẫu nhiên có dấu thập phân mỗi khi chúng ta thực thi mã.

Nếu bạn đang xem các số nguyên không có dấu thập phân thì chúng ta có thể sử dụng đoạn mã dưới đây.

Mã:

 Sub Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub 

Điều này sẽ tiếp tục tạo ra các số nguyên từ 1 đến 100.


$config[zx-auto] not found$config[zx-overlay] not found