Tôi không thể cho bạn biết số lần tôi nhận được dữ liệu thô từ một số chương trình hoặc từ một số người, và điều đầu tiên tôi cần làm là xóa các bản sao khỏi danh sách. Nếu bạn thấy mình trong tình huống tương tự, macro sau sẽ giúp ích rất nhiều:

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

Macro hoạt động trên một lựa chọn bạn thực hiện trước khi gọi nó. Do đó, nếu bạn cần loại bỏ các ô trùng lặp khỏi phạm vi C15: C59, chỉ cần chọn phạm vi đó và sau đó chạy macro. Nếu bạn chọn nhiều hơn một cột trong phạm vi (ví dụ: C15: E59), thì chỉ cột đầu tiên trong phạm vi bị ảnh hưởng. Khi macro hoàn tất, các ô trùng lặp sẽ bị loại bỏ, cũng như bất kỳ ô trống nào.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2109) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.