Trần Văn Huệ
Trần Văn Huệ
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1860 lượt xem

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

Sep 28 2020

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:

Ngoài ra nếu muốn tìm hiểu sâu hơn và kỹ hơn về các thủ thuật hay khác của Word thì Gitiho.com xin giới thiệu với các bạn các khóa học cực kỳ hữu ích để các bạn tham khảo bao gồm:


Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 1860 lượt xem
Vỗ tay vỗ tay

0 Bình 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