前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA:根据指定列删除重复行

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

作者头像
Exploring
发布2022-09-20 14:33:24
3.1K0
发布2022-09-20 14:33:24
举报
文章被收录于专栏:数据处理与编程实践

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档