首页 > 解决方案 > 删除两列 VBA 之间的重复项

问题描述

我正在从站点中提取一些数据,将其放在 J 列中,将其与 K 列中的另一列数据进行比较,然后删除在 J 列的两列之间发现的任何重复项。

现在我正在使用它,但它似乎不起作用。有关如何使其正常工作的任何想法?

Sub Remove_Duplicates()

'Create Range for SAP Batches
    Dim rng1 As Range
    Dim rng2 As Range


'Finds last cell in column J
    Set rng2 = .Range("K2").End(xlDown)

ActiveSheet.Range("J2:rng2").RemoveDuplicates Columns:=Array(1, 2),   Header:=xlNo

End Sub

标签: vbaexcel

解决方案


这使用FIND()方法,从底部向上删除:

Sub KillDuplicated()
    Dim J As Range, K As Range
    Dim rc As Long
    rc = Rows.Count
    Set J = Range("J1:J" & Cells(rc, "J").End(xlUp).Row)
    Set K = Range("K1:K" & Cells(rc, "K").End(xlUp).Row)
    jcnt = J.Count

    For i = jcnt To 1 Step -1
        If K.Find(what:=Cells(i, "J"), after:=K(1)) Is Nothing Then
        Else
            Cells(i, "J").Delete shift:=xlUp
        End If
    Next i
End Sub

前:

在此处输入图像描述

之后:

在此处输入图像描述


推荐阅读