excel中删除重复数据

来源:互联网 发布:小罗伯特唐尼知乎 编辑:程序博客网 时间:2024/06/01 09:16
今天碰到的一个问题,删除重复数据,这里做个记录。

一列数据,有很多重复项目,现在需要删除重复的,如下图所示:
简单的方法是,选中该列,
工具栏“数据”项目中选择“删除重复项”:

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


那么从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                    NextEnd Sub


获得不重复的数据代码如下:
Sub getData()Dim i As LongDim currentValue As StringDim pos As Longpos = 3For 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            DoEventsNextEnd Sub

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


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


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

原创粉丝点击