Tự nhiên bạn chen ngang topic của người ta vậy???
[GPECODE=vb]
Option Explicit
Sub Loc3()
Application.ScreenUpdating = False
Dim DL, kq(1 To 65000, 1 To 4), Dk1, nextrow As Date, Dk2 As Date
Dim r As Long, i As Long, j As Long, Dk3 As String
Dk1 = Sheet2.[B2].Value
Dk2 = Sheet2.[D2].Value
Dk3 = Sheet2.[F2].Value
With Sheet1
DL = .Range(.[A3], .[D65000].End(3))
End With
For r = 1 To UBound(DL)
If Dk3 = Empty Then
If IsEmpty(DL(r, 1)) Then DL(r, 1) = DL(r - 1, 1)
If DL(r, 1) >= Dk1 And DL(r, 1) <= Dk2 Then
i = i + 1
If DL(r, 1) <> nextrow Then kq(i, 1) = DL(r, 1)
For j = 2 To 4
kq(i, j) = DL(r, j)
Next j
End If
nextrow = DL(r, 1)
Else
If DL(r, 3) = Dk3 Then
i = i + 1
For j = 2 To 4
kq(i, j) = DL(r, j)
Next j
End If
End If
Next r
With Sheet2
If i Then
.Range("A5

65000").ClearContents
.Range("A5").Resize(i, 4) = kq
Else
.Range("A5

65000").ClearContents
End If
End With
Application.ScreenUpdating = True
End Sub
[/GPECODE]