Chọn ngẩu nhiên một số dòng trong Excel.

  • Thread starter Thread starter VanHao
  • Ngày gửi Ngày gửi

VanHao

Trung cấp
Mình có một CSDL gồm 50 dòng
Bây giờ mình muốn chọn ngẩu nhiên 5 dòng và nó sẽ đánh dấu những dòng được chọn đó. Khi chọn lại thì nó sẽ chọn 5 dòng khác, có thể có những dòng đã chọn hoặc là không.
Để thực hiện vấn đề trên phải viết code như thế nào, các bạn có thể viết hoặc gợi ý cho mình được không?
Rất cảm ơn sự đóng góp của các bạn.
Trân trọng.
 
Giả sử cột A có dữ liệu không trống, cột B dùng để đánh dấu chọn, dòng 1 là dòng tiêu đề:

Sub ChonNN()
Dim i As Long, xRow As Long, EndR As Long
EndR = Range("$A$1").End(xlDown).Row
Range("B2:B" & EndR).ClearContents
For i = 1 To 5
xRow = Int(Rnd() * EndR)
xRow = xRow + IIf(xRow < EndR - 1 And xRow <> 1, 2, 1)
If Cells(xRow, 2) = "Chon" Then xRow = Int(Rnd() * EndR) + 1
Cells(xRow, 2) = "Chon"
Next
End Sub
 
Thêm một macro nữa để tham khảo

Sub ChonNgauNhien5Dong()
Dim lRw As Long, Wzj As Long

lRw = [A65500].End(xlUp).Row
Randomize: Wzj = 1 + Int((lRw - 6) * Rnd())
Range("A1:A" & lRw).Interior.ColorIndex = 2
Range("A" & Wzj).Resize(5).Interior.ColorIndex = 35
End Sub

Macro sẽ tô màu lam 5 ô liền nhau trên cột 'A' chứa dữ liệu sau mỗi lần chạy nó!
 
Rất Cám ơn bác ptm0412 và bác SA DQ đã hướng dẩn. Tuy nhiên, khi thực hiện vài lần thì chương trình sẽ chọn cả tiêu đề hoặc không đủ số lượng yêu cầu. Tôi đã khắc phục được lổi này và ứng dụng vào chương trình của mình.
 
Back
Top