Tạo 3 số ngẫu nhiên duy nhất trong Microsoft Excel
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ó:
===
Để 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
-
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
Để 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
-
Khi chúng tôi chạy mã VBA, danh sách các số duy nhất sẽ được tạo tự động
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)
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]