Note: The other languages of the website are Google-translated. Back to English

Jak usunąć zduplikowane wiersze z tabeli w dokumencie programu Word?

W dokumencie programu Word mogą istnieć tabele ze zduplikowanymi wierszami, które chcesz usunąć i czasami zachować pierwszy wygląd. W takim przypadku możesz ręcznie usuwać zduplikowane pliki jeden po drugim, możesz również użyć kodu VBA.

Usuń zduplikowane wiersze z tabeli w programie Word


Usuń zduplikowane wiersze z tabeli w programie Word

1. Umieść kursor na tabeli, z której chcesz usunąć zduplikowane wiersze, naciśnij Alt + F11 klawisze, aby włączyć Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Moduł aby utworzyć nowy moduł.
doc usuwa zduplikowane wiersze table01

3. Skopiuj poniższe kody i wklej je do nowego Moduł skrypt.

VBA: Usuń zduplikowane wiersze z tabeli w programie Word

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

doc usuwa zduplikowane wiersze table02

4. naciśnij F5 klucz do uruchomienia kodu, wszystkie zduplikowane wiersze zostaną usunięte.
doc usuwa zduplikowane wiersze table03

Uwagi: W powyższym kodzie rozróżniana jest wielkość liter, jeśli chcesz usunąć zduplikowane wiersze bez rozróżniania wielkości liter, możesz użyć poniższego kodu:

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 = 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

Jeśli chcesz usunąć zduplikowane wiersze ze wszystkich tabel dokumentu, umieść kursor w dowolnym miejscu dokumentu poza tabelą, a następnie zastosuj jeden z powyższych kodów.


Przeglądanie w kartach i edycja wielu dokumentów Word / skoroszytów programu Excel, takich jak Firefox, Chrome, Internet Explore 10!

Możesz być zaznajomiony z przeglądaniem wielu stron internetowych w przeglądarce Firefox / Chrome / IE i przełączaniem się między nimi, łatwo klikając odpowiednie karty. Tutaj karta Office obsługuje podobne przetwarzanie, które umożliwia przeglądanie wielu dokumentów programu Word lub skoroszytów programu Excel w jednym oknie programu Word lub oknie programu Excel i łatwe przełączanie się między nimi, klikając ich zakładki.
Kliknij, aby uzyskać bezpłatną wersję próbną karty Office!

Przeglądaj dokumenty zawierające wiele słów w jednym oknie jako Firefox

Zalecane narzędzia zwiększające produktywność programu Word

 

Kutools dla programu Word — ponad 100 zaawansowanych funkcji programu Word, oszczędzaj 50% czasu

  • Skomplikowane i powtarzalne operacje można wykonać jednorazowo w ciągu kilku sekund.
  • Wstaw wiele obrazów w folderach do dokumentu programu Word jednocześnie.
  • Scalaj i łącz wiele plików programu Word w folderach w jeden z żądaną kolejnością.
  • Podziel bieżący dokument na oddzielne dokumenty według nagłówka, podziału sekcji lub innych kryteriów.
  • Konwertuj pliki między Doc i Docx, Docx i PDF, zbiór narzędzi do typowych konwersji i zaznaczania, i tak dalej ...
Sortuj komentarze według
Komentarze (0)
Brak ocen. Oceń jako pierwszy!
Nie ma tu jeszcze żadnych komentarzy

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL