gianghoxaotra
Thành viên chính thức


- Tham gia
- 6/2/13
- Bài viết
- 53
- Được thích
- 1
Hiện tại em đang viết một code VBA thay thế cho hàm VLookup vì hàm Vlookup chạy nhiều chậm máy quá, nhờ các cao thủ trên đây giúp đỡ vì hàm viết không chạy được.
Em mời vào nghề nên cần các cao thủ chỉ giáo dùm thêm. Cảm ơn mọi người.
Đây là Code VBA:
Function MTlookup(Source As Range, VTCV As Integer, Data As Range, ValueCell As Range)
Dim KQ As Object
ReDim KQ(1 To UBound(Data), 1 To 1)
Set Dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(Source)
If Not Dic.exists(CStr(Source(i, VTCV))) Then
Dic.Add CStr(Source(i, VTCV)), i
End If
'Dic(CStr(Source(i, 1))) = i
Next
For i = 1 To UBound(Data)
Itm = CStr(Data(i, 1))
If Dic.exists(Itm) Then
KQ(i, 1) = Source(Dic.Item(Itm), 1)
End If
Next
ValueCell.Resize(i - 1, 1) = KQ
End Function
Em mời vào nghề nên cần các cao thủ chỉ giáo dùm thêm. Cảm ơn mọi người.
Đây là Code VBA:
Function MTlookup(Source As Range, VTCV As Integer, Data As Range, ValueCell As Range)
Dim KQ As Object
ReDim KQ(1 To UBound(Data), 1 To 1)
Set Dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(Source)
If Not Dic.exists(CStr(Source(i, VTCV))) Then
Dic.Add CStr(Source(i, VTCV)), i
End If
'Dic(CStr(Source(i, 1))) = i
Next
For i = 1 To UBound(Data)
Itm = CStr(Data(i, 1))
If Dic.exists(Itm) Then
KQ(i, 1) = Source(Dic.Item(Itm), 1)
End If
Next
ValueCell.Resize(i - 1, 1) = KQ
End Function