Word VBA技术:删除表格中内容相同的重复行(加强版)

2023-02-24 20:48:31 浏览数 (1)

标签: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

代码从表格最后一行开始,依次遍历表格中的所有行并对第一列中的内容进行比较,删除具有相同内容的行。

vba

0 人点赞