Ai cha... code đâu mà dài thế, xem hỏng nổi... nhưng chạy code xong thì có thể đoán được ý bạn là: "Xét các cell trong cột A tại sheet1, cái nào giống với cột A sheet2 thì copy hết sang sheet3" <--- Đúng không?Các bác kiểm tra code giùm em, đồng thời xem cho em làm cách nào xóa đi những dòng đã dc đánh dấu sau khi chạy macro.
Nếu còn cách nào nhanh so sánh, copy nhanh hơn nữa thì các bác chỉ giùm em nhá.
Sub Copy_Sosanh()
  Dim Data As Range, Sosanh As Range
  Dim i As Long, j As Long
  Set Data = Sheet1.[A1].CurrentRegion
  Set Sosanh = Sheet2.[A1].CurrentRegion
  j = Data.Count
  For i = j To 1 Step -1
    If WorksheetFunction.CountIf(Sosanh, Data(i)) Then
      Sheet3.Cells(j, "A") = Data(i): j = j - 1
      Data(i).EntireRow.Delete
    End If
  Next
  Sheet3.[A1].SpecialCells(4).Delete Shift:=xlUp
End Sub



