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
	
	  




