Xin giúp đỡ code vba hàm vlookup (1 người xem)

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

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

mrtq_86

Thành viên chính thức
Tham gia
16/11/09
Bài viết
54
Được thích
1
Mình muốn dò tìm emid ở sheet1 đến emid ở sheet2 lấy ra dept. Tuy nhiên, chỉ dò tìm được emid ở sheet2 cột H.
Bạn nào giúp mình dò tìm tất cả id với.
Mã:
Sub ADDCLM()
On Error Resume Next
Dim Dept_Row As Long
Dim Dept_Clm As Long
Table1 = Sheets("sheet1").Range("A3:A100") ' Employee_ID Column from Employee table
Table2 = Sheets("sheet2").Range("look") ' Range of Employee Table 1
Dept_Row = Sheets("sheet1").Range("E3").Row ' Change E3 with the cell from where you need to start populating the Department
Dept_Clm = Sheets("sheet1").Range("E3").Column
For Each cl In Table1
  Sheet1.Cells(Dept_Row, Dept_Clm) = Application.WorksheetFunction.VLookup(cl, Table2, 5, False)
  Dept_Row = Dept_Row + 1
  
Next cl


End Sub
 

File đính kèm

bạn dùng code
Mã:
Sub ADDCLM()
Dim Sarr(), Darr(), Arr(), Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Sarr = Sheets("sheet1").Range("A3:A" & Sheets("sheet1").Range("A3").End(xlDown).Row).Value ' Employee_ID Column from Employee table
ReDim Arr(1 To UBound(Sarr), 1 To 1)
Darr = Sheets("sheet2").Range("look").Value ' Range of Employee Table 1
For i = 1 To UBound(Darr)
  For j = 1 To UBound(Darr, 2) - 1
    Dic.Item(Darr(i, j)) = Darr(i, UBound(Darr, 2))
  Next j
Next i
For i = 1 To UBound(Sarr)
  Arr(i, 1) = Dic.Item(Sarr(i, 1))
Next i
Sheets("sheet1").Range("E3").Resize(UBound(Sarr)) = Arr
Set Dic = Nothing: Erase Arr: Erase Darr: Erase Sarr
End Sub
 
Upvote 0
Anh HieuCD,

(1) Anh nên đặt thêm biến rồi gán ubound() để tránh trong vòng lặp nó tính lại nhiều lần, cái nào gọi 1 lần thì dùng ubound() luôn.
(Cái này anh VetMini nhắc nhở em mấy lần nên cũng đang sửa)

(2) Dòng cuối để dọn đối tượng thì cũng không cần lắm, anh có thể thảo khảo bài viết của anh VetMini ở link sau:
https://www.giaiphapexcel.com/forum...ject-sau-khi-thực-hiện-xong-một-thủ-tục/page3
 
Upvote 0
Anh HieuCD,

(1) Anh nên đặt thêm biến rồi gán ubound() để tránh trong vòng lặp nó tính lại nhiều lần, cái nào gọi 1 lần thì dùng ubound() luôn.
(Cái này anh VetMini nhắc nhở em mấy lần nên cũng đang sửa)

(2) Dòng cuối để dọn đối tượng thì cũng không cần lắm, anh có thể thảo khảo bài viết của anh VetMini ở link sau:
https://www.giaiphapexcel.com/forum...ject-sau-khi-thực-hiện-xong-một-thủ-tục/page3
ý rất hay, mình sẽ áp dụng cho các code sau
cám ơn bạn, chúc bạn 1 ngày vui }}}}}}}}}}}}}}}
 
Upvote 0
Web KT

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

Back
Top Bottom