Hết sức bình tĩnh bạn ah...Có ai giúp mình được không vây??
Public Sub TINH()
Dim Tm, Kq(1 To 10000, 1 To 4), i, k
Dim Cl As Range, Addr As String
Tm = Sheet2.Range("A2:C" & Sheet2.[A65536].End(3).Row)
For i = 1 To UBound(Tm, 1)
With Sheet1.Range("A4:A65536")
Set Cl = .Find(Tm(i, 2), LookIn:=xlValues)
If Not Cl Is Nothing Then
Addr = Cl.Address
Do
k = k + 1
Kq(k, 1) = Tm(i, 1)
Kq(k, 2) = Cl.Offset(, 1)
Kq(k, 3) = Cl.Offset(, 2) * Tm(i, 3)
Kq(k, 4) = Tm(i, 2)
Set Cl = .FindNext(Cl)
Loop While Not Cl Is Nothing And Cl.Address <> Addr
End If
End With
Next
Sheet3.[A3:D65536] = Kq
End Sub
Ok rồi. Mình cảm ơn bạn nhiều nghe.Bam thay Sub này vào Test xem sao:
Mã:Public Sub TINH() Dim Tm, Kq(1 To 10000, 1 To 4), i, k Dim Cl As Range, Addr As String Tm = Sheet2.Range("A2:C" & Sheet2.[A65536].End(3).Row) For i = 1 To UBound(Tm, 1) With Sheet1.Range("A4:A65536") Set Cl = .Find(Tm(i, 2), LookIn:=xlValues) If Not Cl Is Nothing Then Addr = Cl.Address Do k = k + 1 Kq(k, 1) = Tm(i, 1) Kq(k, 2) = Cl.Offset(, 1) Kq(k, 3) = Cl.Offset(, 2) * Tm(i, 3) Kq(k, 4) = Tm(i, 2) Set Cl = .FindNext(Cl) Loop While Not Cl Is Nothing And Cl.Address <> Addr End If End With Next Sheet3.[A3:D65536] = Kq End Sub