so sánh dữ liệu giữa 2 sheet (1 người xem)

Liên hệ QC

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

dailykem

Thành viên thường trực
Tham gia
2/8/10
Bài viết
306
Được thích
436
trước khi post bài e tìm kiếm trên diễn đàn rồi nhưng dốt quá ko áp dụng được vào file của mình
mong các anh giúp cho
e cần:

1. tách những người mang tên giống nhau ở sheet 1 và sheet 2 sang sheet khác hoặc cột khác hoặc bôi màu (kèm theo MaNhanVien và MaHS của người đó)

2. tách những tên có ở Sheet 1 nhưng ko có ở Sheet 2 sang sheet khác hoặc cột khác hoặc bôi màu (kèm theo MaNhanVien và MaHS)

3. tách những tên có ở Sheet 2 nhưng ko có ở Sheet 1sang sheet khác hoặc cột khác hoặc bôi màu
chân thành cảm ơn các anh
 

File đính kèm

trước khi post bài e tìm kiếm trên diễn đàn rồi nhưng dốt quá ko áp dụng được vào file của mình
mong các anh giúp cho
e cần:

1. tách những người mang tên giống nhau ở sheet 1 và sheet 2 sang sheet khác hoặc cột khác hoặc bôi màu (kèm theo MaNhanVien và MaHS của người đó)

2. tách những tên có ở Sheet 1 nhưng ko có ở Sheet 2 sang sheet khác hoặc cột khác hoặc bôi màu (kèm theo MaNhanVien và MaHS)

3. tách những tên có ở Sheet 2 nhưng ko có ở Sheet 1sang sheet khác hoặc cột khác hoặc bôi màu
chân thành cảm ơn các anh

Bạn dùng tạm củ chuối này. Tuy code hơi dở nhưng kết quả thì đúng yêu cầu của bạn.
Mã:
Sub Loc()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error Resume Next
    Sheets("Giong").Delete
    Sheets("1khac2").Delete
    Sheets("2khac1").Delete
    Sheets.Add.Name = "Giong"
    Sheets.Add.Name = "1khac2"
    Sheets.Add.Name = "2khac1"
    
    Sheets("Sheet1").Select
    For Each cls In Range([c2], [c65535].End(3))
        tmp = Sheets("Sheet2").Cells.Find(cls, LookAt:=xlWhole)
        If tmp > 0 Then cls(1, -1).Resize(, 3).Copy Sheets("Giong").[b65536].End(3)(2)
        If tmp = 0 Then cls(1, -1).Resize(, 3).Copy Sheets("1khac2").[b65536].End(3)(2)
        tmp = ""
    Next
    
    Sheets("Sheet2").Select
    For Each cls In Range([a2], [a65535].End(3))
        tmp = Sheets("Sheet1").Cells.Find(cls, LookAt:=xlWhole)
        If tmp = 0 Then cls.Copy Sheets("2khac1").[b65536].End(3)(2)
        tmp = ""
    Next
    For Each sh In Worksheets
        sh.Columns.AutoFit
    Next
End Sub

Góp ý với bạn: không nên nhập dữ liệu vào cột A và dòng 1 của bảng tính (trước mắt là không nhìn thấy đường kẻ ngoài cùng, sau nữa là nhiều khi gặp rắc rối nếu phải dùng thêm cột phụ, dòng phụ...)
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn thử tham khảo bài này xem, có thể giúp ích cho bạn đấy!
Cám ơn anh nhiều
có bài tham khảo này mà e ko làm được thì chắc là quá dốt
thế mà e tìm trên diễn đàn ko ra (chắc nó ở gần cuối) làm phiền anh quá
nhờ sự chỉ bảo e đã làm được theo ý mình

Bạn dùng tạm củ chuối này. Tuy code hơi dở nhưng kết quả thì đúng yêu cầu của bạn.
Đối với anh là củ chuối, đối với e nó là "Quả táo cắn dở"
vì e còn chưa làm được như anh
e phải dựa vào bài của anh Minhthien hướng dẫn mới làm ra

Chân thành cảm ơn 2 anh
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom