Hướng dẫn cách loại bỏ các hàng trùng lặp khỏi bảng (Tablet) trong Word

Nội dung được viết bởi Trần Văn Huệ

Khi làm việc với tài liệu Word, nếu tài liệu có rất nhiều bảng được chèn vào có thể sẽ có một số bảng có các hàng trùng lặp mà bạn muốn loại bỏ. Trong trường hợp này, bạn có thể chọn xóa từng cái trùng lặp theo cách thủ công hoặc cũng có thể tìm và xóa nhanh bằng cách sử dụng mã VBA.

Xóa các hàng trùng lặp khỏi bảng trong Word

Bước 1: Mở tài liệu Word cần xóa các hàng trùng lặp khỏi bảng.

Bước 2: Kích con trỏ chuột vào bảng mà bạn muốn xóa các hàng trùng lặp, nhấn tổ hợp phím Alt + F11 để bật cửa sổ Microsoft Visual Basic for Applications.

Hướng dẫn cách loại bỏ các hàng trùng lặp khỏi bảng (Tablet) trong Word

Bước 3: Trong giao diện Microsoft Visual Basic for Applications hiển thị, truy cập vào menu Insert > Module để tạo Module mới. 

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = xRow.Text
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = xRow.Text
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

Bước 4: Sao chép mã bên dưới và dán chúng vào tập lệnh Module mới.

Hướng dẫn cách loại bỏ các hàng trùng lặp khỏi bảng (Tablet) trong Word

Bước 5: Nhấn phím F5 để chạy mã, sau đó tất cả các hàng trùng lặp trong các bảng sẽ bị loại bỏ.

Hướng dẫn cách loại bỏ các hàng trùng lặp khỏi bảng (Tablet) trong Word

Lưu ý: Mã trên có phân biệt chữ hoa chữ thường, nếu bạn muốn loại bỏ các hàng trùng lặp trong trường hợp không phân biệt chữ hoa chữ thường, bạn có thể sử dụng mã dưới đây:

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Hoc Word voi Gitiho"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = UCase(xRow.Text)
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = UCase(xRow.Text)
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

Nếu bạn muốn xóa các hàng trùng lặp trong tất cả các bảng của tài liệu, hãy đặt con trỏ vào bất kỳ vị trí nào của tài liệu bên ngoài bảng, sau đó áp dụng một trong các mã trên.

Trên đây Gitiho vừa hướng dẫn các bạn cách xóa các hàng trùng lặp khỏi bảng (Tablet) được chèn trong Word. Hi vọng các bạn thấy bài viết hữu ích. Chúc các bạn thành công!

CÓ THỂ BẠN CŨNG QUAN TÂM:

Hướng dẫn cách sắp xếp dữ liệu trong Excel theo màu chi tiết

Hướng dẫn cách copy chỉ những giá trị hiển thị sau khi lọc trong Excel

Thay đổi cách tổ chức dữ liệu trên Excel giúp công việc dễ dàng hơn

KHÓA HỌC WORD MIỄN PHÍ

Với hơn 7600 HỌC VIÊN đang theo học với đánh giá trung bình 4.78 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông