欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

excel中删除重复数据

程序员文章站 2022-04-13 23:13:49
...
今天碰到的一个问题,删除重复数据,这里做个记录。

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

按下确定:
excel中删除重复数据
按下确定完成重复项目的清理:
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 教程 目录