Đối chiếu dữ liệu ở 2 sheets để ghi dữ liệu từ sheets2 sang sheet1 (1 người xem)

Liên hệ QC

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

khoahoc78

Thành viên chính thức
Tham gia
27/9/10
Bài viết
55
Được thích
1
Mình có 2 sheet Sheet HS và DL, sheet DL và Sheet HS có các cột tương ứng giống nhau, nhưng các dòng có thể khác nhau hoặc giống nhau, riêng sheet DL có các cột điểm m1, m2, m3 có dữ liệu.

Dùng công thức như thế nào ở các ô ở cột E đến cột G của sheet HS để lấy dữ liệu từ sheet DL qua với điều kiện đối chiếu là các cột từ b3 đến d1000 của 2 sheet giống nhau mới ghi, nếu sheet DL có, hoặc sheet HS có thì không ghi qua.
Nếu dùng code thì viết như thế nào.
Mong giúp đỡ!
 

File đính kèm

Bạn hãy thử với macro này

PHP:
Option Explicit
Sub gpeDoiChieu()
'Khai báo các biến cần dùng:'
 Dim Cls As Range, Rng As Range, Sh As Worksheet, sRng As Range
 'Gán trang tính vô biến:'
 Set Sh = ThisWorkbook.Worksheets("DL")
 Sheets("HS").Select  '<= Kích hoạt trang tính'
'Gán vùng cần tìm dữ liệu vô biến:'
 Set Rng = Sh.Range(Sh.[b3], Sh.[b3].End(xlDown))
'Thiết đặt vòng lặp để tìm hết tênm trong danh sách học sinh:'
 For Each Cls In Range([B4], [b9999].End(xlUp))
   'Tìm trong biến vùng dữ liệu với từng HS cụ thể:'
   Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
   'Nếu không tìm thấy thì,:'
   If sRng Is Nothing Then
 'Ghi câu thông báo:'
      Cls.Offset(, 3).Value = "Nothing"
   Else  'Nếu thấy thì,:'
'Gán trị 3 ô chứa điểm vô cho học sinh đó:'
      Cls.Offset(, 3).Resize(, 3).Value = sRng.Offset(, 3).Resize(, 3).Value
   End If  'Kết thúc điều kiện'
 Next Cls  'Hết vòng lặp'
End Sub
 
Cảm ơn ChanhTQ@ nhưng có phải mình chèn và nhập đoạn code này vào modul không? Mình còn mơ hồ về vba lắm.
 
Web KT

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

Back
Top Bottom