Gộp điểm bằng VBA

Liên hệ QC

Thiên Thanh1

Thành viên mới
Tham gia
16/10/20
Bài viết
36
Được thích
9
Chào các bạn
nhờ các bạn viết giúp code như nội dung file đính kèm
Cảm ơn các bạn
 

File đính kèm

  • Gộp điểm.xlsx
    17 KB · Đọc: 14
Anh viết cho mình bằng Vba được không?
1) Trong bảng không có Mã học sinh mà chỉ có Tên, có 2 tên trùng ( Xuân Mai & Thanh Thanh ), máy đâu có hiểu được bạn
2) Số lượng học sinh 2 bảng bằng nhau & tên giống nhau hết chứ bạn ?
 
Upvote 0
1) Trong bảng không có Mã học sinh mà chỉ có Tên, có 2 tên trùng ( Xuân Mai & Thanh Thanh ), máy đâu có hiểu được bạn
2) Số lượng học sinh 2 bảng bằng nhau & tên giống nhau hết chứ bạn ?
Dạ 2 bảng tên được sắp xếp thứ tự và số lượng như nhau chú ơi.
 
Upvote 0
Đang mải xem đá bóng, không xem kỹ, bạn chạy code này cũng được, gọn hơn tý
Thân
Mã:
Public Sub Noi()
    Dim BangA, BangB, I, Kq, Dau, Rot, iHang, K, Wf
    Rot = "R" & ChrW(7899) & "t"
    Set BangA = Sheets("DS1").Range(Sheets("DS1").[A2], Sheets("DS1").[A5000].End(xlUp)).Resize(, 5)
    Set BangB = Sheets("DS2").Range(Sheets("DS2").[A2], Sheets("DS2").[A5000].End(xlUp)).Resize(, 5)
    Set Wf = Application.WorksheetFunction
    ReDim Kq(1 To BangA.Rows.Count, 1 To 1)
        For I = 1 To BangA.Rows.Count
                K = K + 1
                If BangA(I, 2) <> "R" & ChrW(7899) & "t" Then
                    If BangB(I, 2) <> "R" & ChrW(7899) & "t" Then
                        Kq(K, 1) = Join(Wf.Transpose(Wf.Transpose(BangA(I, 3).Resize(, 3))), ", ") & ", " & Join(Wf.Transpose(Wf.Transpose(BangB(I, 3).Resize(, 3))), ", ")
                    End If
                Else
                        Kq(K, 1) = "R" & ChrW(7899) & "t"
                End If
        Next I
    [I2].Resize(K, 1) = Kq
End Sub
 
Upvote 0
Đang mải xem đá bóng, không xem kỹ, bạn chạy code này cũng được, gọn hơn tý
Thân
Mã:
Public Sub Noi()
    Dim BangA, BangB, I, Kq, Dau, Rot, iHang, K, Wf
    Rot = "R" & ChrW(7899) & "t"
    Set BangA = Sheets("DS1").Range(Sheets("DS1").[A2], Sheets("DS1").[A5000].End(xlUp)).Resize(, 5)
    Set BangB = Sheets("DS2").Range(Sheets("DS2").[A2], Sheets("DS2").[A5000].End(xlUp)).Resize(, 5)
    Set Wf = Application.WorksheetFunction
    ReDim Kq(1 To BangA.Rows.Count, 1 To 1)
        For I = 1 To BangA.Rows.Count
                K = K + 1
                If BangA(I, 2) <> "R" & ChrW(7899) & "t" Then
                    If BangB(I, 2) <> "R" & ChrW(7899) & "t" Then
                        Kq(K, 1) = Join(Wf.Transpose(Wf.Transpose(BangA(I, 3).Resize(, 3))), ", ") & ", " & Join(Wf.Transpose(Wf.Transpose(BangB(I, 3).Resize(, 3))), ", ")
                    End If
                Else
                        Kq(K, 1) = "R" & ChrW(7899) & "t"
                End If
        Next I
    [I2].Resize(K, 1) = Kq
End Sub
Cháu cảm ơn chú
Chúc chú nhiều sức khỏe
 
Upvote 0
Upvote 0
Upvote 0
Upvote 0
Web KT
Back
Top Bottom