Đọan code cho ra số ngẫu nhiên từ 1-9999

AnhExcel

Member
Hội viên mới
Hỏi : Tôi có 1 bảng tính gồm 3 cột và 24 hàng. Tôi muốn viết chương trình tự động nhập vào mỗi ô 1 số ngẫu nhiên từ 1 tới 9999. Yêu cầu là không có số ngẫu nhiên nào trùng nhau.


Đáp:

Bạn có thể dùng hàm Randomize() và hàm Rnd() để tạo số ngẫu nhiên để đặt vào các cell của ma trận. Để tránh dùng lại số ngẫu nhiên cũ, bạn phải kiểm tra trước xem nó có trùng với những giá trị đã dùng chưa. Cụ thể macro sau sẽ thực hiện được yêu cầu của bạn:

Sub CreateRandom()
Dim RandList(0 To 3000) As Integer
Dim count As Integer
Dim num As Integer
count = 0
'Khởi động số ngẫu nhiên
'Randomize
'Duyệt từng cell trong vùng chọn và tạo số tự động
For Each c In Selection
FindRand:
' lấy 1 số ngẫu nhiên từ 1 tới 9999
num = Int(Rnd * 9998 + 1)
'kiểm tra đã dùng số này chưa
For i = 0 To count
If num = RandList(i)
Then GoTo FindRand
Next
'nếu chưa dùng thì thiết lập cho cell hiện hành
c.Value = num
'lưu vào danh sách để kiểm tra
RandList(count) = num
count = count + 1
Next
End Sub


Lưu ý để dùng macro trên, bạn phải đánh dấu chọn vùng chứa các cell trên worksheet cần nhập số ngẫu nhiên rồi chạy macro.

(St)
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top