Nếu bạn muốn tạo danh sách các số ngẫu nhiên duy nhất thì bạn có thể sử dụng các hàm RANDBETWEEN & VBA RND. Trong bài viết này, chúng tôi sẽ tạo ra 3 số duy nhất từ ​​danh sách được cung cấp.

Bạn có thể tìm câu hỏi ban đầu tại đây

Câu hỏi: Tôi muốn macro tạo danh sách 3 số ngẫu nhiên từ danh sách các số được lưu trong cột A. Có một điều kiện là mã VBA cần được quan tâm. Điều kiện là có 3 số tồn tại trong cột B, do đó macro cần tạo danh sách các số chưa xuất hiện một lần trong cột B. Bằng cách này, chúng ta có thể có một danh sách các số duy nhất trong cột B & C.

Sau đây là ảnh chụp nhanh của ví dụ mà chúng tôi có:

img1

===

Để nhận danh sách các số ngẫu nhiên duy nhất; chúng ta cần làm theo các bước dưới đây để khởi chạy trình soạn thảo VB Nhấp vào tab Nhà phát triển Từ nhóm Mã chọn Visual Basic

img2

  • Sao chép đoạn mã dưới đây trong mô-đun chuẩn

Sub RandomNumbers()

Dim ws As Worksheet

Dim ar As Variant

Dim RandomNum As Long

Dim i As Integer

Dim myVal As Long

Randomize

Set ws = ThisWorkbook.Sheets("Numbers")

With ws

ar = .Range("A" & Rows.Count).End(xlUp).Row

.Range("C1:C3").ClearContents

For i = 1 To 3

Do

RandomNum = Int((1 - ar + 1) * Rnd + ar)

myVal = .Range("A" & RandomNum).Value

Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing

.Range("C" & i).Value = myVal

Next i

End With

End Sub

img3

Để chạy macro, chúng ta có thể nhấn phím F5 từ bàn phím nếu bạn đang hoạt động trên màn hình của Visual Basic Editor Một cách khác để chạy macro là sử dụng phím “ALT + F8”; chọn macro và nhấp vào nút Run

img4

  • Khi chúng tôi chạy mã VBA, danh sách các số duy nhất sẽ được tạo tự động

img5

Giải thích mã:

Trong đoạn mã trên, chúng ta sẽ sử dụng hàm RND & INT cùng với vòng lặp For & vòng lặp Do để lấy kết quả.

  • Chúng tôi khai báo Dim ws là Worksheet; mục đích của việc khai báo ws là Worksheet là chúng ta chỉ muốn mã chạy trên một trang tính cụ thể, tức là

Các số trong ví dụ của chúng tôi Dim RandomNum As Long: điều này sẽ lưu các số duy nhất Đặt ws = ThisWorkbook.Sheets (“Numbers”): dòng này sẽ đảm bảo rằng mã chỉ chạy trên trang Numbers. Dòng mã tiếp theo sẽ sử dụng Với câu lệnh ar = .Range (“A” & Rows.Count) .End (xlUp) .Row: dòng này sẽ lưu ô cuối cùng trong cột A (24 trong ví dụ của chúng tôi)

Range (“C1: C3”). ClearContents: dòng này sẽ xóa mọi nội dung hiện có trong phạm vi C1: C3 Tiếp theo, chúng ta sẽ chạy vòng lặp For bắt đầu từ 1 đến 3 lần với Do Loop để tạo danh sách các số ngẫu nhiên & kiểm tra không có trùng lặp trong phạm vi hiện có, tức là cột B Kết luận: Chúng ta có thể tạo danh sách các số ngẫu nhiên riêng biệt từ alist trong Microsoft excel với điều chỉnh nhỏ trong mã VBA ở trên.

image 48

Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]