当前位置:首页 > 科技 > 正文

Word VBA技术:删除表格中内容相同的重复行

excelperfect
标签:Word VBA 本示例演示如何使用代码删除已排序表中第1列内容相同的行,代码如下:
Sub DeleteTableDuplicateRows() Dim objTable As Table Dim objRow As Range Dim objNextRow As Range Dim i As Long
'指定想要操作的表格 Set objTable = ActiveDocument.Tables(1)
'设置对象变量为第一行 Set objRow = objTable.Rows(1).Range
'关闭屏幕刷新 Application.ScreenUpdating = False
For i = 1 To objTable.Rows.Count - 1 '设置对象变量为下一行 Set objNextRow = objRow.Next(wdRow)
'比较表格第1列的文本 IfobjRow.Cells(1).Range= objNextRow.Cells(1).RangeThen '如果相同则删除第2行 objNextRow.Rows(1).Delete Else '如果不相同则移到下一行 Set objRow = objNextRow End If Next i
'打开屏幕更新 Application.ScreenUpdating = True End Sub
上面的代码区分大小写,即第一列中内容相同但大小写不同不会被删除。下面的代码操作时不区分大小写:
Sub DeleteTableDuplicateRows1() Dim objTable As Table Dim objRow As Range Dim objNextRow As Range Dim i As Long Dim strCell As String Dim strCellNext As String
'指定想要操作的表格 Set objTable = ActiveDocument.Tables(1)
'设置对象变量为第一行 Set objRow = objTable.Rows(1).Range
'关闭屏幕刷新 Application.ScreenUpdating = False
For i = 1 To objTable.Rows.Count - 1 '设置对象变量为下一行 Set objNextRow = objRow.Next(wdRow)
strCell= LCase(objRow.Cells(1).Range.Text)strCellNext= LCase(objNextRow.Cells(1).Range.Text)
If strCell = strCellNext Then objNextRow.Rows(1).Delete Else Set objRow = objNextRow End If Next i
'打开屏幕更新 Application.ScreenUpdating = TrueEnd Sub
本示例演示了如何使用VBA代码在Word表格的单元格中移动的方法。那么,对于没有排序过的表格,如何使用VBA删除重复行呢? 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
你可能想看: