文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。
Excel虽然自带删除重复项的功能,但在使用时存在不足。下面先介绍删除重复项的功能,然后再采用VBA代码实现删除重复行的功能。
(1) 删除重复项(Remove Duplicates)
http://mpvideo.qpic.cn/0b78uqabsaaaz4amrsu7bzqfbjgddgsaagia.f10002.mp4?dis_k=5256d7a923169f968ecfcb3f268affac&dis_t=1663655533&vid=wxv_1870563960463097864&format_id=10002&support_redirect=0&mmversion=false
删除重复项
的功能存在两点不足,一是如果存在重复项,默认保留行号靠前的数据行;二是只能拓展到连续的数据列,而无法拓展到整行。
(2)VBA代码实现
本代码要实现的功能是根据品号
进行重复行的删除。若有重复行,保留后一行数据。原始数据默认已经按品号
升序排列。
Sub DeleteDuplicate()
'根据指定列删除重复行
Dim aWB As Worksheet, num_row As Integer
Dim i As Integer, col As Integer
Set aWB = ThisWorkbook.Sheets("data")
aWB.Activate
num_row = Range("C65535").End(xlUp).Row
col = 3
For i = 3 To num_row
Do
If Cells(i, col) = "" Then Exit For
If Cells(i, col) <> Cells(i 1, col) Then
Exit Do
Else
Rows(i 1 & ":" & num_row 1).Copy
Rows(i & ":" & i).Select
aWB.Paste
End If
Loop
Next
MsgBox "Done!"
End Sub
运行效果展示:http://mpvideo.qpic.cn/0bf2duaggaaaxealfde7orqfahodmmoqayya.f10002.mp4?dis_k=c1694b0cf0d27dd74569d894d71a72e1&dis_t=1663655533&vid=wxv_1870564920639946762&format_id=10002&support_redirect=0&mmversion=false