消除重复数据

时间:2016-06-09 10:17:43

标签: excel vba excel-vba

我是VBA的新用户,我编写了以下基本代码,以便在一个工作表中消除重复数据并将唯一数据提取到另一个工作表中。

例如:

    Sheet1 中的
  1. 总数为184个单元格,其中包含A列中相同的日期(12/07/2007)。
  2. 我希望获取该日期数据的一个并将其写入 Sheet2 中的单元格。
  3. 因此,将在Sheet2中的A1中写入12/07/2007。
  4. 我会感激任何帮助。

    代码:

    Sub Take_Unique()
    
        Workbooks("historicaldata.xls").Activate
        Dim i As String
        Dim xrow As Long
        xrow = 2
        Do Until Sheet1.Cells(xrow, 1) = ""
            If Sheet1.Cells(xrow, 1).Value = Sheet1.Cells(xrow + 1, 1) Then
               Sheet12.Cells(xrow, 1).Value = Sheet1.Cells(xrow, 1)
            End If
            xrow = xrow + 1
        Loop
    
    End Sub
    

2 个答案:

答案 0 :(得分:2)

另一种方法是duplicate master addin

它处理空白,大小写敏感甚至正则表达式匹配 - 因此它超出了默认比较。

答案 1 :(得分:1)

将整个列从sheet1复制到sheet12更简单:

Sheet1.Columns(1).Copy Destination:=Sheet12.Columns(1)

然后使用RemoveDuplicates功能删除任何重复项(如果Header存在则设置Header,如果不存在则设置Header)

Sheet12.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes