Sửa code để lọc ngẫu nhiên các sản phẩm

  • Thread starter Thread starter LikeIt
  • Ngày gửi Ngày gửi
Liên hệ QC

LikeIt

Thành viên tiêu biểu
Tham gia
16/6/06
Bài viết
415
Được thích
254
Nghề nghiệp
Others
KG các Anh Chị,
Xin cho em hỏi, trước em có một bài hỏi về VBA, em có đoạn code này

Option Explicit
Sub Filter25()
Dim eRw As Long, jj As Long
Dim SoHg As Integer, Col As Byte
Dim MaHg As String
Dim Rng As Range, sRng As Range

Col = [iV2].End(xlToLeft).Column
If Col < 4 Then Col = 4 Else Col = Col + 1
eRw = [a65500].End(xlUp).Row - 3
SoHg = eRw \ 25
If Col > 4 Then
MaHg = Cells(1, Col - 1).End(xlDown).Value
Set Rng = Range([A3], [A3].End(xlDown))
Set sRng = Rng.Find(MaHg, , xlFormulas, xlWhole).Offset(1)
Cells(2, Col).Resize(SoHg).Value = sRng.Resize(SoHg).Value
Else
[g2].Resize(SoHg).Value = [A4].Resize(SoHg).Value
End If
End Sub

Vì lý do là trước đây em có nhu cầu lọc ra một ngày thì thứ tự có một số code sẽ hiện nên khi bấm vào nút lọc (VD có 1000 code thì chia cho cố định là 25 ngày làm việc thì nó hiện nên 40 code), nhưng nó theo thứ tự từ 1 đến 1000

Nay em muốn hỏi có cách nào làm cho nó tự trích xuất ra mốt số code theo cách ngẫu nhiên không? tức là code được trích xuất ra không theo thứ tự nữa? mà nó cứ lấy linh tinh trong số 1000 code này (VD như dùng hàm RANK), nhưng những code đã lấy ra là không được phép trùng lặp nữa cho đến khi hết 25 ngày làm việc trong tháng. Sau 25 ngày nó lại quay lại lấy các code đã được trích xuất từ đầu

Em xin cảm ơn!
 
KG các Anh Chị,
Xin cho em hỏi, trước em có một bài hỏi về VBA, em có đoạn code này

Option Explicit
Sub Filter25()
Dim eRw As Long, jj As Long
Dim SoHg As Integer, Col As Byte
Dim MaHg As String
Dim Rng As Range, sRng As Range

Col = [iV2].End(xlToLeft).Column
If Col < 4 Then Col = 4 Else Col = Col + 1
eRw = [a65500].End(xlUp).Row - 3
SoHg = eRw \ 25
If Col > 4 Then
MaHg = Cells(1, Col - 1).End(xlDown).Value
Set Rng = Range([A3], [A3].End(xlDown))
Set sRng = Rng.Find(MaHg, , xlFormulas, xlWhole).Offset(1)
Cells(2, Col).Resize(SoHg).Value = sRng.Resize(SoHg).Value
Else
[g2].Resize(SoHg).Value = [A4].Resize(SoHg).Value
End If
End Sub

Vì lý do là trước đây em có nhu cầu lọc ra một ngày thì thứ tự có một số code sẽ hiện nên khi bấm vào nút lọc (VD có 1000 code thì chia cho cố định là 25 ngày làm việc thì nó hiện nên 40 code), nhưng nó theo thứ tự từ 1 đến 1000

Nay em muốn hỏi có cách nào làm cho nó tự trích xuất ra mốt số code theo cách ngẫu nhiên không? tức là code được trích xuất ra không theo thứ tự nữa? mà nó cứ lấy linh tinh trong số 1000 code này (VD như dùng hàm RANK), nhưng những code đã lấy ra là không được phép trùng lặp nữa cho đến khi hết 25 ngày làm việc trong tháng. Sau 25 ngày nó lại quay lại lấy các code đã được trích xuất từ đầu

Em xin cảm ơn!
Đương nhiên là làm được nếu có file đính kèm
Còn không bạn có thể tham khảo bài này:
Tạo dãy số ngẫu nhiên không trùng
Trong đó có ứng dụng chia phòng thi (lấy danh sách học sinh theo kiểu ngẫu nhiên, gần giống với yêu cầu của bạn)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom