Chia nhóm học sinh để thực hành (1 người xem)

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

Người dùng đang xem chủ đề này

0167767

Thành viên hoạt động
Tham gia
10/3/12
Bài viết
141
Được thích
10
VD em có 1 danh sách học sinh số lượng tùy thuộc vào mỗi lớp khác nhau, nghĩa là số lượng sẽ thay đổiHỏi: Nhập 1 số vào ô A7 (Từ số 2 đến 10) thì chia nhóm theo số đã nhậpVD nhập số 2 thì chia nhóm 2 người. Nhập số 3 thì chia nhóm 3 người
 

File đính kèm

Lần chỉnh sửa cuối:
VD em có 1 danh sách học sinh số lượng tùy thuộc vào mỗi lớp khác nhau, nghĩa là số lượng sẽ thay đổiHỏi: Nhập 1 số vào ô A7 (Từ số 2 đến 10) thì chia nhóm theo số đã nhậpVD nhập số 2 thì chia nhóm 2 người. Nhập số 3 thì chia nhóm 3 người
Code chia nhóm ngẫu nhiên, không theo thứ tự từ trên xuống nha
PHP:
Sub ChiaNhom()
Dim data(), Res(1 To 1000, 1 To 1)
Dim I, J, n, m, K, SoCuoi, chk, SoNhom
SoNhom = [A7]
data = Range([B9], [B65536].End(3)).Value
SoCuoi = UBound(data)
K = 1: m = 1
With CreateObject("scripting.dictionary")
    Res(K, 1) = "Nhóm " & m
    Do
        Randomize
        chk = Int((SoCuoi * Rnd) + 1)
        If Not .exists(chk) Then
            K = K + 1: n = n + 1
            .Add chk, ""
            Res(K, 1) = data(chk, 1)
        End If
        If n = SoNhom Then
            n = 0
            m = m + 1: K = K + 1
            Res(K, 1) = "Nhóm " & m
        End If
    Loop Until K = SoCuoi + m
End With
[D9].Resize(K) = Res
End Sub
 
Upvote 0
Đúng rồi bạn ơi, bạn thêm cho mình các chữ nhóm 1, nhóm 2, nhóm 3 chữ màu đỏ dùm mình nhé, cám ơn bạn rất nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng rồi bạn ơi, bạn thêm cho mình các chữ nhóm 1, nhóm 2, nhóm 3 chữ màu đỏ dùm mình nhé, cám ơn bạn rất nhiều
Nếu bạn cố tí chắc cũng viết được thế này. Chú ý nếu nhóm mà nhiều quá thì sợ là có lỗi (khoảng 35 hay gì đó)
Cũng không rõ, tới đâu tính tới đó thôi
PHP:
Sub ChiaNhom()
Dim data(), Res(1 To 1000, 1 To 1), dinhdang
Dim I, J, n, m, K, SoCuoi, chk, SoNhom
SoNhom = [A7]
data = Range([B9], [B65536].End(3)).Value
SoCuoi = UBound(data)
K = 1: m = 1
With CreateObject("scripting.dictionary")
    Res(K, 1) = "Nhóm " & m
    dinhdang = "D" & K + 8
    Do
        Randomize
        chk = Int((SoCuoi * Rnd) + 1)
        If Not .exists(chk) Then
            K = K + 1: n = n + 1
            .Add chk, ""
            Res(K, 1) = data(chk, 1)
        End If
        If n = SoNhom Then
            n = 0
            m = m + 1: K = K + 1
            Res(K, 1) = "Nhóm " & m
            dinhdang = dinhdang & "," & "D" & K + 8
        End If
    Loop Until K = SoCuoi + m
End With
[D9].Resize(K) = Res
Range(dinhdang).Font.Color = vbRed
End Sub
 
Upvote 0

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

Back
Top Bottom