VBA:根据指定列删除重复行

2022-09-20 14:33:24 浏览数 (1)

文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。

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代码实现

本代码要实现的功能是根据品号进行重复行的删除。若有重复行,保留后一行数据。原始数据默认已经按品号升序排列。

代码语言:javascript复制
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

0 人点赞