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

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

VanHao

Trung cấp
18/12/05
70
4
6
Go Vap
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.
 
Khóa học Quản trị dòng tiền
P

ptm0412

Sơ cấp
7/10/08
21
0
1
64
TP HCM
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
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
612
104
43
68
HCM city
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ó!
 
V

VanHao

Trung cấp
18/12/05
70
4
6
Go Vap
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.
 

Xem nhiều