如何从Word文档中的表中删除重复的行?
在Word文档中,可能要删除一些具有重复行的表,并有时保留第一个外观。 在这种情况下,您可以选择手动删除一个重复的副本,也可以选择使用VBA代码。
从Word中的表中删除重复的行
从Word中的表中删除重复的行
1.将光标放在要从中删除重复行的表上,按 Alt + F11键 启用 Microsoft Visual Basic应用程序 窗口。
2。 点击 插页 > 模块
创建一个新的模块。
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
4。 按 F5
键运行代码,然后所有重复的行将被删除。
备注:上面的代码区分大小写,如果要删除不区分大小写的重复行,则可以使用下面的代码:
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
如果要删除文档所有表中的重复行,请将光标放在表外文档的任何位置,然后应用上述代码之一。
分页浏览和编辑多个Word文档/ Excel工作簿,如Firefox,Chrome,Internet Explore 10!
您可能熟悉在 Firefox/Chrome/IE 中查看多个网页,并通过单击相应的选项卡轻松在它们之间切换。在这里,Office Tab支持类似的处理,它允许您在一个Word窗口或Excel窗口中浏览多个Word文档或Excel工作簿,并通过单击它们的选项卡轻松地在它们之间进行切换。点击免费试用Office Tab!
最佳办公生产力工具
Kutools for Word - 通过 Over 提升您的文字体验 100 显着特点!
深入了解下面突出显示的功能或 单击此处探索 Kutools for Word 的全部功能.
📘 文档掌握: 分页 / 合并文件 / 以各种格式导出选择(PDF/TXT/DOC/XLSX) / 批量转换为PDF / 将页面导出为图像 / 一次打印多个文件 ...
✏ 内容编辑: 批量查找和替换跨多个文件 / 调整所有图片的大小 / 转置表行和列 / 将表格转换为文字 ...
➕ 创意插入: 插页 千位分隔符 / 复选框 / 单选按钮 / 二维码 / 条码 / 对角线表 / 公式标题 / 图片说明 / 表标题 / 多张图片 / 在我们的插入组中发现更多信息
🔍 精准选择: 精确定位特定页面 / 表 / 形状 / 标题段落 / 使用我们的选择组轻松导航
⭐ 星级增强: 快速导航至任何位置 / 自动插入重复文本 / 在文档窗口之间无缝切换 / 11 转换工具 ...
使用 Kutools 转换您的 Word 任务。 👉 立即下载并试用 30 天 🚀。
了解更多 免费下载 购买