Hoàng Nhật Phương
Thành viên gắn bó



- Tham gia
- 5/11/15
- Bài viết
- 1,895
- Được thích
- 1,219
Bạn thử code này xem saoXin chào các bạn,
Như tiêu đề OT đã nêu , nhờ các bạn giúp đỡ trường hợp của OT trong tập tin gửi kèm với ạ.
Option Explicit
Sub TimKiem()
Dim DM
Dim MaHang, Kieu, Chuoi
Dim Tenhang, Machung
Dim i, j, k
DM = Sheet6.Range("B1", Sheet6.Range("F1000000").End(xlUp))
With Sheet2
k = .Range("B1000000").End(xlUp).Row
MaHang = .Range("B2:B" & k)
Kieu = .Range("D2:D" & k)
End With
k = UBound(MaHang)
ReDim Tenhang(1 To k, 1 To 1)
ReDim Machung(1 To k, 1 To 1)
With CreateObject("Scripting.Dictionary")
For i = 2 To UBound(DM)
For j = 1 To 3
.Item(DM(i, j)) = Array(DM(i, 4), DM(i, 5))
Next j
Next i
For i = 1 To k
If Kieu(i, 1) <> "" Then
Chuoi = MaHang(i, 1) & Kieu(i, 1)
If .exists(Chuoi) Then
Tenhang(i, 1) = .Item(Chuoi)(0)
Machung(i, 1) = .Item(Chuoi)(1)
Else
Tenhang(i, 1) = "Ko"
Machung(i, 1) = "Ko"
End If
Else
Chuoi = MaHang(i, 1)
If .exists(Chuoi) Then
Tenhang(i, 1) = .Item(Chuoi)(0)
Machung(i, 1) = .Item(Chuoi)(1)
Else
Tenhang(i, 1) = "Ko"
Machung(i, 1) = "Ko"
End If
End If
Next i
End With
With Sheet2
.Range("A2").Resize(k, 1).ClearContents
.Range("A2").Resize(k, 1) = Tenhang
.Range("H2").Resize(k, 1).ClearContents
.Range("H2").Resize(k, 1) = Machung
End With
End Sub
Con chào ThầyViết cho bạn một Function mà chỉ xài được cho trường hợp trong file của bạn
Bạn thử code này xem sao
Mã:Option Explicit Sub TimKiem() Dim DM Dim MaHang, Kieu, Chuoi Dim Tenhang, Machung Dim i, j, k DM = Sheet6.Range("B1", Sheet6.Range("F1000000").End(xlUp)) With Sheet2 k = .Range("B1000000").End(xlUp).Row MaHang = .Range("B2:B" & k) Kieu = .Range("D2:D" & k) End With k = UBound(MaHang) ReDim Tenhang(1 To k, 1 To 1) ReDim Machung(1 To k, 1 To 1) With CreateObject("Scripting.Dictionary") For i = 2 To UBound(DM) For j = 1 To 3 .Item(DM(i, j)) = Array(DM(i, 4), DM(i, 5)) Next j Next i For i = 1 To k If Kieu(i, 1) <> "" Then Chuoi = MaHang(i, 1) & Kieu(i, 1) If .exists(Chuoi) Then Tenhang(i, 1) = .Item(Chuoi)(0) Machung(i, 1) = .Item(Chuoi)(1) Else Tenhang(i, 1) = "Ko" Machung(i, 1) = "Ko" End If Else Chuoi = MaHang(i, 1) If .exists(Chuoi) Then Tenhang(i, 1) = .Item(Chuoi)(0) Machung(i, 1) = .Item(Chuoi)(1) Else Tenhang(i, 1) = "Ko" Machung(i, 1) = "Ko" End If End If Next i End With With Sheet2 .Range("A2").Resize(k, 1).ClearContents .Range("A2").Resize(k, 1) = Tenhang .Range("H2").Resize(k, 1).ClearContents .Range("H2").Resize(k, 1) = Machung End With End Sub