【问题标题】:Removing entire row if duplicate exists in one column如果一列中存在重复,则删除整行
【发布时间】:2019-05-20 16:03:53
【问题描述】:

我有一个包含大约 60,000 行的工作表。如果单个列(批处理列)包含重复项,我想删除行中的所有数据。

其他列的数据存在一些差异,但我只希望每批只有一行。

我尝试使用删除重复项,但由于其他列的差异,它不会删除所有内容。

我写了一个宏,但是速度很慢。

有人知道如何加快速度吗?或者可能是更好的方法?

Sub Pull_Non_Variable()
    i = 0
    Do
        Current_Batch = Cells(i + 2, "J")

        'Cells(i + 2, "J").Select

        Next_Batch = Cells(i + 3, "J")

        'Cells(i + 3, "J").Select

        If Current_Batch = "" Then
            Exit Do
        End If

        If Current_Batch = Next_Batch Then
            Rows(i + 2).Delete
            'Range(Cells(i + 2, "A"), Cells(i + 2, "BI")).Delete
        Else
            i = i + 1
        End If

    Loop
End Sub

【问题讨论】:

  • 使用删除重复项时,您可以选择相关列。有了这么多的数据,值得把它放在一个数组中,只有在完成重复数据删除后才写回工作表。

标签: excel vba


【解决方案1】:

正如 SJR 在 cmets 中提到的,您可以选择范围中的哪些列指示重复条件。

ActiveSheet.Range("A:BI").RemoveDuplicates Columns:=10, Header:=xlYes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多