粘贴到Excel时自动删除重复数据

时间:2018-03-22 16:39:10

标签: excel excel-vba excel-formula vba

我有一组从第三方程序中的网格复制的CSV数据,我要粘贴到excel中。数据由第一列中的名称和第二列中的日期/时间组成。数据按时间降序排列并不断更新。问题是,无论出于何种原因,网格都有1000行限制,因为它属于第三方应用程序,我无法获得限制。

我希望能够根据数据集中的name列自动删除重复的行,并保留最早的行。 更棘手的是,我将不断添加到excel网格,因此我还需要检查excel中的现有数据,并从要粘贴的数据中删除任何重复的行。 我希望能够自动执行此操作,因为我没有足够的时间手动快速格式化。

那么有没有办法实现这个目标? 谢谢, IQ

1 个答案:

答案 0 :(得分:0)

将此代码放入工作表的私人代码表中。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then
        On Error GoTo meh
        Application.EnableEvents = False
        With Cells(1, 1).CurrentRegion
            .Cells.Sort Key1:=.Columns(2), Order1:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
            .Cells.RemoveDuplicates Columns:=1, Header:=xlYes
        End With
    End If
meh:
    Application.EnableEvents = True
End Sub

这是由粘贴到工作表中的2个或更多数据单元触发的。