如何从Word文档中的表中删除重复的行?
在Word文档中,可能要删除一些具有重复行的表,并有时保留第一个外观。 在这种情况下,您可以选择手动删除一个重复的副本,也可以选择使用VBA代码。
从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选项卡支持类似的处理,使您可以在一个Word窗口或Excel窗口中浏览多个Word文档或Excel工作簿,并通过单击它们的选项卡轻松地在它们之间进行切换。 |
![]() |
推荐的Word生产力工具
Kutools For Word-超过100种Word高级功能,节省50%的时间
- 复杂和重复的操作可以在几秒钟内完成一次处理。
- 跨文件夹一次将多个图像插入Word文档。
- 将文件夹中的多个Word文件合并并合并为所需顺序。
- 根据标题,分节符或其他条件将当前文档拆分为单独的文档。
- 在Doc和Docx之间,Docx和PDF之间转换文件,用于常见转换和选择的工具集合等...