- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,964
Em bắt đầu hứng thú với cái màu đỏ rồi đây. Nếu cá về thời gian cũng như tính chính xác thì xin mời với file này!
Giả sử số liệu là một series, nhưng vì lý do nào đó lại có vài trường hợp bị trùng, thế thì phải lọc không trùng!
Với dữ liệu là 65536 dòng, hãy thử với cột B tức điều kiện là XN2 với code của Thầy hay bất cứ của ai lọc bằng Advanced Filter
Kết quả đúng sẽ là không trùng và lọc đến 65517 dòng!
Cũng nhanh đấy nhưng mà chưa có nhanh hơn công cụ Excel đâu
Tôi dùng con dao bén hơn chút:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range) 'Bo so 1 o Change1 de thu.
Dim rng As Range
Dim lC As Long
Dim t As Double
If Target.Address = "$E$2" Then
t = Timer
Set rng = Range("A3:A65536")
Select Case Target.Value
Case Is = "XN1": lC = 0
Case Is = "XN2": lC = 1
Case Is = "XN3": lC = 2
End Select
Set rng = rng.Offset(, lC)
With Target.Offset(1).Resize(rng.Rows.Count)
.Value = rng.Value
.RemoveDuplicates 1, xlNo
End With
MsgBox Format(Timer - t, "0.000")
End If
End Sub
Ẹc... Ẹc...
---------------
Tuy nhiên, như thế cũng chưa có sướng, làm vầy cho nó sung:
- Hãy SaveAs file thành xlsm rồi copy dữ liệu ra 400,000 dòng, xong thử code nhé
- Riêng cột XN2, hãy chọn cell B3 rồi fill xuống "mút chỉ" đến cuối ---> Mục đích không cho em nào trùng
- Giờ dùng code lọc theo điều kiện "XN2"