excel中删除重复数据

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

今天碰到的一个问题,删除重复数据,这里做个记录。

 

一列数据,有很多重复项目,现在需要删除重复的,如下图所示:

简单的方法是,选中该列,

工具栏“数据”项目中选择“删除重复项”:

 

按下确定:

按下确定完成重复项目的清理:

 

 

那么从vba的角度如何删除数据:

测试用添加数据如下:

Sub addData() '
    Dim i As Long
    Dim j As Integer
    
    Dim rndID As Long
    Dim rndHex As String
    Dim rndValue As String
    Randomize
    
    For i = 2 To 10000
        rndValue = ""
        For j = 1 To 4
           rndID = Rnd() * 25 + 65
           rndHex = Chr(rndID)
           rndValue = rndValue & rndHex
        Next
        Sheets("Sheet1").Range("A" & i).Value = rndValue
                
    Next
End Sub

 

 

获得不重复的数据代码如下:

Sub getData()
Dim i As Long

Dim currentValue As String
Dim pos As Long

pos = 3
For i = 2 To 10000
    currentValue = Sheets("Sheet1").Range("A" & i).Value
    
    If i > 2 Then
        
        Set c = Sheets("sheet1").Range("A2:A" & CStr(i - 1)).Find(currentValue)
        If c Is Nothing Then
            Sheets("Sheet1").Range("B" & pos).Value = currentValue
            pos = pos + 1
        End If
    Else
         Sheets("Sheet1").Range("B" & pos).Value = currentValue
    End If
    
    
    DoEvents
Next

End Sub

 

需要注意的是:代码中加入 DoEvents,数据量大的时候,防止假死。

 

 

采用excel本身提供的“删除重复项”功能速度比代码快得多,但是不易控制。用vba更能适应更多的情况。

 

 

学习更多vb.net知识,请参看vb.net 教程 目录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值