Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как удалить повторяющиеся строки из таблицы в документе Word?

Author Sun Last modified

В документе Word могут быть таблицы с повторяющимися строками, которые вы хотите удалить, оставив только первое вхождение. В этом случае можно выбрать удаление дубликатов вручную по одной строке или воспользоваться кодом VBA.

Удаление повторяющихся строк из таблицы в Word


Удаление повторяющихся строк из таблицы в Word

1. Поместите курсор в таблицу, из которой нужно удалить повторяющиеся строки, и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. Нажмите Вставить > Модуль чтобы создать новый Модуль.
Insert > Module options in the VBA window

3. Скопируйте приведенный ниже код и вставьте его в скрипт нового Модуля.

VBA: Удаление повторяющихся строк из таблицы в 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

VBA pasted into the Module window

4. Нажмите F5 для запуска кода, после чего все повторяющиеся строки будут удалены.
All duplicate rows are removed from the table

Примечание: Приведенный выше код учитывает регистр. Если вы хотите удалить повторяющиеся строки без учета регистра, вы можете использовать следующий код:

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

Если вы хотите удалить повторяющиеся строки во всех таблицах документа, поместите курсор в любое место документа за пределами таблицы, а затем примените один из приведенных выше кодов.


Office Tab: Добавляет интерфейсы с вкладками в Word, Excel, PowerPoint...
Navigate through documents using Office Tab
Улучшите свой рабочий процесс прямо сейчас.Узнать больше об Office Tab Бесплатная загрузка

Делайте больше за меньшее время с Kutools для Word, усиленным ИИ

Kutools для Word — это не просто набор инструментов, это умное решение, созданное для повышения вашей продуктивности. Благодаря возможностям, управляемым искусственным интеллектом, и самым необходимым функциям, Kutools помогает вам делать больше за меньшее время:

  • Мгновенно суммируйте, переписывайте, составляйте и переводите контент.
  • Проверяйте текст в реальном времени с предложениями по грамматике, пунктуации и стилю во время написания.
  • Перефразируйте и переводите контент, сохраняя макет, стиль и структуру без изменений.
  • Легко переводите ваш контент более чем на 40 языков, расширяя свое глобальное присутствие.
  • Получайте мгновенную помощь и умные рекомендации на основе содержимого текущего документа.
  • Спросите, как выполнить задачу — например, удалить разрывы разделов — и ИИ проведет вас или сделает это за вас.
  • Редактируйте конфиденциальную информацию за считанные секунды, чтобы обеспечить полную конфиденциальность.
  • Все инструменты работают бесперебойно внутри Word, всегда под рукой.
  • Создавайте, улучшайте, переводите, суммируйте и защищайте документы без усилий.
  • Улучшайте грамматику, ясность и тон во время написания в реальном времени.
  • Перефразируйте и переводите контент без изменений макета или форматирования.
  • Спросите, как выполнить задачу — например, удалить разрывы разделов — и ИИ проведет вас или сделает это за вас.
  • Все инструменты работают бесперебойно внутри Word, всегда под рукой.
Узнать больше о Kutools для Word Скачать сейчас
Kutools for Word features

Лучшие инструменты для повышения производительности в офисе

Kutools for Word — Поднимите свой опыт работы с Word на новый уровень, используя более 100 впечатляющих функций!

🤖 Возможности ИИ Kutools: AI Ассистент / Ассистент в Реальном Времени / Супер Полировка (Сохраняет форматирование) / Супер Перевод (Сохраняет форматирование) / Искусственный интеллект для редактирования / Проверка с помощью ИИ...

📘 Мастерство работы с Документом: Разделить страницы / Объединить документы / Экспортировать диапазон в различные форматы (PDF/TXT/DOC/HTML...) / Пакетное преобразование в PDF...

Редактирование текста сообщения: Пакетный поиск и замена в нескольких файлах / Изменить размер всех изображений / Транспонировать строки и столбцы таблицы / Преобразовать таблицу в текст...

🧹 Легкая очистка: Удалить лишние пробелы / Разрывы разделов / Текстовые поля / Гиперссылки / Для получения дополнительных инструментов удаления перейдите в группу Удалить...

Креативные вставки: Вставить тысячные разделители / Флажки / Переключатели / QR-код / Штрихкод / Несколько изображений / Узнайте больше в группе Вставить...

🔍 Точные выделения: Определить конкретные страницы / Таблицы / Фигуры / Абзацы заголовков / Улучшайте навигацию с помощью дополнительных функций выбора...

Особые улучшения: Перейти к любому диапазону / Автоматическая вставка повторяющегося текста / Переключение между окнами документа /11 инструментов преобразования...

🌍 Поддержка более40 языков: Используйте Kutools на предпочитаемом языке — поддерживаются Английский, Испанский, Немецкий, Французский, Китайский и еще более40 языков!

Kutools and Kutools Plus tabs on the Word Ribbon
👉 Хотите попробовать эти функции? Загрузите Kutools for Word сейчас! 🚀
 

✨ Kutools for Office — Одна установка, пять мощных инструментов!

Включает Office Tab Pro · Kutools for Excel · Kutools for Outlook · Kutools for Word · Kutools for PowerPoint

📦 Получите все5 инструментов в одном пакете | 🔗 Бесшовная интеграция с Microsoft Office | ⚡ Мгновенно экономьте время и повышайте продуктивность

Лучшие инструменты для повышения производительности в офисе

Kutools for Word - 100+ инструментов для Word