标签:Word VBA
在《Word VBA技术:删除表格中内容相同的重复行》中,我们演示了如何使用代码删除已排序表中第1列内容相同的行。然而,如果表格中第1列没有排序,那么如何删除这列中内容相同的行呢?
对上篇文章中介绍的代码稍作调整,就可以实现删除列中相同内容的行的任务。代码如下:
代码语言:javascript复制Sub DeleteTableDuplicateRowsPlus()
Dim objTable As Table
Dim objRow As Range
Dim objPreviousRow As Range
Dim i As Long
Dim j As Long
Dim iMax As Long
Dim strLastRowCell As String
Dim strCell As String
Dim strCellPrevious As String
'指定想要操作的表格
Set objTable = ActiveDocument.Tables(1)
'关闭屏幕刷新
Application.ScreenUpdating = False
For i = objTable.Rows.Count To 2 Step -1
'设置变量为表格最后一行
Set objRow = objTable.Rows(i).Range
strLastRowCell = LCase(objRow.Cells(1).Range.Text)
For j = i - 1 To 1 Step -1
'设置对象变量为前一行
Set objPreviousRow = objRow.Previous(wdRow)
strCellPrevious = LCase(objPreviousRow.Cells(1).Range.Text)
If strLastRowCell = strCellPrevious Then
Set objRow = objPreviousRow.Next(wdRow)
objPreviousRow.Rows(1).Delete
Else
Set objRow = objPreviousRow
End If
Next j
Next i
'打开屏幕更新
Application.ScreenUpdating = True
End Sub
代码从表格最后一行开始,依次遍历表格中的所有行并对第一列中的内容进行比较,删除具有相同内容的行。