Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Nếu bạn đang cố gắng xóa các hàng trùng lặp dựa trên một cột với sự trợ giúp của VBA Excel cho bộ dữ liệu của bạn, thì bạn sẽ thấy bài viết này hữu ích. Vì vậy, hãy để bắt đầu bài viết chính của chúng tôi.VBA Excel for your dataset, then you will find this article helpful. So, let’s start our main article.

Tải xuống sổ làm việc


5 cách để loại bỏ các hàng trùng lặp dựa trên một cột trong Excel bằng VBA

Ở đây, chúng tôi có nhiều hàng cho một sản phẩm Apple của cột sản phẩm và dựa trên cột này, chúng tôi sẽ hiển thị các cách để loại bỏ các hàng trùng lặp cho sản phẩm Apple bằng mã VBA.Apple of the Product column, and based on this column we will show the ways to remove the duplicate rows for the product Apple using VBA codes.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Chúng tôi đã sử dụng phiên bản Microsoft Excel 365 ở đây, bạn có thể sử dụng bất kỳ phiên bản nào khác theo sự thuận tiện của bạn.


Phương pháp-1: Sử dụng VBA Xóa các bản sao để loại bỏ các hàng trùng lặp dựa trên một cột

Ở đây, chúng tôi sẽ loại bỏ các hàng chứa Apple cho lần thứ hai và thứ ba, điều đó có nghĩa là hàng 6 và hàng 10 bằng cách sử dụng phương thức xóa bản sao.Apple for the second and third times which means Row 6 and Row 10 by using the Remove Duplicates method.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

BƯỚC-01: Truy cập Tab Nhà phát triển >> Tùy chọn Visual Basic.:
➤ Go to Developer Tab >> Visual Basic Option.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Sau đó, trình soạn thảo Visual Basic sẽ mở ra. Chuyển đến Tab Chèn >> Tùy chọn mô -đun.Visual Basic Editor will open up.
➤ Go to Insert Tab >> Module Option.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Sau đó, một mô -đun sẽ được tạo.Module will be created.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Bước-02: Viết mã sau:
➤ Write the following code

Sub RemoveDuplicaterow1()

Range("B3:D11").CurrentRegion.RemoveDuplicates Columns:=Array(1), Header:=xlYes

End Sub

Ở đây, phạm vi của bộ dữ liệu của chúng tôi là B3: D11, cột: = mảng (1) chỉ ra cột đầu tiên của phạm vi này có nghĩa là cột B trên cơ sở chúng tôi sẽ xóa các bản sao, tiêu đề: = Xlys dành cho tiêu đề của điều này Bộ dữ liệu.B3:D11, Columns:=Array(1) indicates the first column of this range that means Column B on the basis of which we will remove duplicates, Header:=xlYes is for the header of this dataset.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Nhấn F5. Sau đó, bạn sẽ có thể loại bỏ các hàng trùng lặp của sản phẩm Apple ngoại trừ hàng đầu tiên của sản phẩm này.F5.
Then, you will be able to remove the duplicate rows of the Product Apple except for the first row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Đọc thêm: Cách xóa các hàng trùng lặp trong Excel với VBA (8 cách hiệu quả)How to Delete Duplicate Rows in Excel with VBA (8 Effective Ways)


Phương pháp-2: Xóa các hàng trùng lặp dựa trên một cột từ dưới lên trên

Giống như phương thức trước, ở đây chúng tôi cũng sẽ loại bỏ các hàng trùng lặp cho sản phẩm Apple từ các hàng dưới cùng ra các hàng trên cùng ngoại trừ hàng ban đầu chứa Apple, nhưng ở đây chúng tôi sẽ không sử dụng phương thức lặp lại thay vì sử dụng một mã khác cho điều này mục đích.Product Apple from the bottom rows to the top rows except for the initial row containing Apple, but here we will not use the RemoveDuplicates method rather than use a different code for this purpose.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Các bước: Thực hiện theo bước-01 của Phương pháp-1. ➤ Viết mã sau:
➤ Follow Step-01 of Method-1.
➤ Write the following code

Sub RemoveDuplicaterow2()

Dim Rng As Range
Dim x As Long
Set Rng = Range("B4", Range("B" & Rows.Count).End(xlUp))
x = Rng.Rows.Count

For x = x To 1 Step -1
    With Rng.Cells(x, 1)
       If WorksheetFunction.CountIf(Rng, .Value) > 1 Then
                  .EntireRow.Delete
       End If
     End With
Next x

End Sub

Ở đây, chúng tôi đã tuyên bố RNG là phạm vi, X dài và đã khai báo phạm vi từ ô B4 đến hàng được sử dụng cuối cùng của cột này và sau đó, chúng tôi đã gán X cho tổng số hàng của bộ dữ liệu này.Rng as Range, x as Long, and declared the range from cell B4 to the last used row of this column and after that, we have assigned x to the total rows number of this dataset.

Vòng lặp For sẽ thực hiện việc loại bỏ các hàng trùng lặp từ hàng cuối cùng sang hàng đầu tiên của phạm vi này với bước thứ tự ngược -1 và Countif sẽ xác định xem cùng một giá trị có được lặp lại hay không và sau đó các hàng có giá trị trùng lặp sẽ là đã xóa.FOR loop will execute the removal of the duplicate rows from the last row to the first row of this range with a reverse order Step -1 and COUNTIF will determine if the same value is repeated or not and then the rows with duplicate values will be deleted.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Nhấn F5. Sau đó, bạn sẽ có thể loại bỏ các hàng trùng lặp của sản phẩm Apple ngoại trừ hàng đầu tiên của sản phẩm này.F5.
Afterward, you will be able to remove the duplicate rows of the Product Apple except for the first row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Đọc thêm: Phím tắt Excel để xóa hàng (với các kỹ thuật tiền thưởng)Excel Shortcut to Delete Rows (With Bonus Techniques)


Phương thức-3: Excel VBA để loại bỏ các hàng trùng lặp dựa trên một cột từ trên xuống dưới

Ở đây, chúng tôi sẽ loại bỏ các hàng có sản phẩm trùng lặp Apple từ hàng trên cùng sang hàng dưới cùng, hàng 4 và hàng 6, ngoại trừ hàng cuối cùng với Apple.Product Apple from the top row to the bottom row, Row 4 and Row 6, except for the very last row with Apple.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Các bước: Thực hiện theo bước-01 của Phương pháp-1. ➤ Viết mã sau:
➤ Follow Step-01 of Method-1.
➤ Write the following code

Sub RemoveDuplicaterow3()

Dim Rng As Range
Dim x As Long
Set Rng = Range("B4", Range("B" & Rows.Count).End(xlUp))
x = Rng.Rows.Count

For x = 1 To x Step 1
   With Rng.Cells(x, 1)
        If WorksheetFunction.CountIf(Rng, .Value) > 1 Then
                .EntireRow.Delete
        End If
    End With
Next x

End Sub

Ở đây, chúng tôi đã tuyên bố RNG là phạm vi, X dài và đã khai báo phạm vi từ ô B4 đến hàng được sử dụng cuối cùng của cột này và sau đó, chúng tôi đã gán X cho tổng số hàng của bộ dữ liệu này.Rng as Range, x as Long, and declared the range from cell B4 to the last used row of this column and after that, we have assigned x to the total rows number of this dataset.

Vòng lặp For sẽ thực hiện việc loại bỏ các hàng trùng lặp từ hàng cuối cùng sang hàng đầu tiên của phạm vi này với bước thứ tự ngược -1 và Countif sẽ xác định xem cùng một giá trị có được lặp lại hay không và sau đó các hàng có giá trị trùng lặp sẽ là đã xóa. FOR loop will execute the removal of the duplicate rows from the first row to the last row of this range with Step 1 and COUNTIF will determine if the same value is repeated or not and then the rows with duplicate values will be deleted.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Nhấn F5. Sau đó, bạn sẽ có thể loại bỏ các hàng trùng lặp của sản phẩm Apple ngoại trừ hàng đầu tiên của sản phẩm này.F5.
Finally, you will be able to remove the duplicate rows of the Product Apple except for the last row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Đọc thêm: Phím tắt Excel để xóa hàng (với các kỹ thuật tiền thưởng) How to Delete Empty Rows at Bottom in Excel (7 Ways)


Phương thức-3: Excel VBA để loại bỏ các hàng trùng lặp dựa trên một cột từ trên xuống dưới

  • Ở đây, chúng tôi sẽ loại bỏ các hàng có sản phẩm trùng lặp Apple từ hàng trên cùng sang hàng dưới cùng, hàng 4 và hàng 6, ngoại trừ hàng cuối cùng với Apple.
  • Vòng lặp For sẽ thực hiện việc loại bỏ các hàng trùng lặp từ hàng đầu tiên sang hàng cuối cùng của phạm vi này với bước 1 và Countif sẽ xác định xem cùng một giá trị có được lặp lại hay không và sau đó các hàng có giá trị trùng lặp sẽ bị xóa.
  • Nhấn F5. Cuối cùng, bạn sẽ có thể loại bỏ các hàng trùng lặp của sản phẩm Apple ngoại trừ hàng cuối cùng của sản phẩm này.
  • Đọc thêm: Cách xóa các hàng trống ở dưới cùng trong Excel (7 cách)
  • Bài đọc tương tự:

Cách xóa các hàng ẩn trong Excel (3 phương thức)

Xóa các hàng thay thế theo Excel (5 cách nhanh)Product Apple including the initial row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Các bước: Thực hiện theo bước-01 của Phương pháp-1. ➤ Viết mã sau:
➤ Follow Step-01 of Method-1.
➤ Write the following code

Sub RemoveDuplicaterow4()

Dim ws As Worksheet
Dim X As Range
Dim Y As Range
Set ws = Worksheets("Removeall")

For Each X In ws.Range("B3:B11").Cells
If WorksheetFunction.CountIf(ws.Columns("B"), X.Value) > 1 Then
    If Not Y Is Nothing Then
       Set Y = Union(Y, X)
    Else
       Set Y = X
    End If
End If
Next X

If Not Y Is Nothing Then Y.EntireRow.Delete

End Sub

Ở đây, chúng tôi đã tuyên bố RNG là phạm vi, X dài và đã khai báo phạm vi từ ô B4 đến hàng được sử dụng cuối cùng của cột này và sau đó, chúng tôi đã gán X cho tổng số hàng của bộ dữ liệu này.ws as Worksheet, X, Y as Range, and assigned the Removeall worksheet to ws. The FOR loop will work for each cell of the range B3:B11, and X is assigned to cells of this range, when the value of the cells will be repeated we will get the number of this value greater than 1, and then we will first assign Y to X, when Y will not be empty then we will join the X and Y ranges together by UNION function and then we will delete the rows.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Vòng lặp For sẽ thực hiện việc loại bỏ các hàng trùng lặp từ hàng cuối cùng sang hàng đầu tiên của phạm vi này với bước thứ tự ngược -1 và Countif sẽ xác định xem cùng một giá trị có được lặp lại hay không và sau đó các hàng có giá trị trùng lặp sẽ là đã xóa.F5.
Then, we will get the following dataset which has no rows for the Product Apple.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Đọc thêm: Mã VBA Excel để xóa các hàng dựa trên nhiều giá trị ô (3 tiêu chí) Excel VBA Code to Delete Rows Based on Multiple Cell Value (3 Criteria)


Phương thức-5: Sử dụng Excel VBA để xóa các hàng trùng lặp dựa trên một cột cho một bảng

Ở đây, chúng tôi có một bảng có tên là Bảng 1, & nbsp; và sử dụng mã VBA, chúng tôi sẽ xóa các hàng chứa Apple cho lần thứ hai và thứ ba có nghĩa là hàng 6 và hàng 10 ngoại trừ hàng đầu tiên của sản phẩm này.Table whose name is Table1, and using a VBA code we will remove the rows containing Apple for the second and third times which means Row 6 and Row 10 except for the first row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Các bước: Thực hiện theo bước-01 của Phương pháp-1. ➤ Viết mã sau:
➤ Follow Step-01 of Method-1.
➤ Write the following code

Sub RemoveDuplicaterow5()

ActiveSheet.ListObjects("Table1").DataBodyRange.RemoveDuplicates _
Columns:=Array(1), Header:=xlYes

End Sub

Ở đây, Bảng1 là tên bảng, cột: = mảng (1) chỉ ra cột đầu tiên của bảng này có nghĩa là cột B trên cơ sở chúng tôi sẽ xóa các bản sao, tiêu đề: = Xlyes dành cho tiêu đề của bộ dữ liệu này.Table1 is the table name, Columns:=Array(1) indicates the first column of this table that means Column B on the basis of which we will remove duplicates, Header:=xlYes is for the header of this dataset.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Nhấn F5. Sau đó, bạn sẽ có thể loại bỏ các hàng trùng lặp của sản phẩm Apple ngoại trừ hàng đầu tiên của sản phẩm này.F5.
Then, you will be able to remove the duplicate rows of the Product Apple except for the first row of this product.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí

Đọc thêm: Cách xóa hàng bằng VBA (14 cách)How to Delete Row Using VBA (14 Ways)


Phần thực hành

Để thực hành một mình, chúng tôi đã cung cấp một phần thực hành như dưới đây trong một tờ có tên là thực hành. Xin hãy làm điều đó một mình. Practice section like below in a sheet named Practice. Please do it by yourself.

Hướng dẫn excel vba delete duplicate rows based on criteria - excel vba xóa các hàng trùng lặp dựa trên tiêu chí


Sự kết luận

Trong bài viết này, chúng tôi đã cố gắng bao gồm các cách để loại bỏ các hàng trùng lặp dựa trên một cột bằng VBA một cách dễ dàng. Hy vọng bạn sẽ thấy nó hữu ích. Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, vui lòng chia sẻ chúng trong phần bình luận.VBA easily. Hope you will find it useful. If you have any suggestions or questions, feel free to share them in the comment section.


Những bài viết liên quan

  • Cách lọc và xóa các hàng với VBA trong các phương thức Excel (2)
  • Xóa các hàng đã chọn bằng Excel VBA (hướng dẫn từng bước)
  • Cách xóa các hàng không sử dụng theo Excel (8 cách dễ dàng)
  • Xóa các hàng thay thế theo Excel (5 cách nhanh)
  • Cách xóa các hàng được lọc trong Excel (5 Phương pháp)