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 = True
End Sub
本示例演示了如何使用VBA代碼在Word表格的單元格中移動的方法。那麼,對于沒有排序過的表格,如何使用VBA删除重複行呢?
歡迎在下面留言,完善本文内容,讓更多的人學到更完美的知識。
歡迎到知識星球:完美Excel社群,進行技術交流和提問,獲取更多電子資料,并通過社群加入專門的微信讨論群,更方便交流。
有話要說...