删除包含重复值的行

时间:2017-07-22 20:01:05

标签: excel-vba delete-row vba excel

需要帮助,我在下面有以下代码:

Dim LRAS, matchFoundIndex, iCntr As Long
LRAS = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

For iCntr = 3 To LRAS
    If Cells(iCntr, 1) <> "" Then
    matchFoundIndex = WorksheetFunction.Match(Cells(iCntr, 1), Range("A1:A" & LRAS), 0)
    If iCntr <> matchFoundIndex Then
        Cells(iCntr, 14) = "Duplicate"
        'at this point duplicate
    End If
End If

Next iCntr
'-----------
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim deleteRow As Long
Dim wrksht As Worksheet
Set wrksht = ActiveSheet

For deleteRow = wrksht.Range("N" & Rows.Count).End(xlUp).Row To 3 Step -1
If wrksht.Range("N" & deleteRow).Value = "Duplicate" Then
    Rows(deleteRow).EntireRow.Delete
End If

Next deleteRow
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True

此代码基本上搜索重复值,然后表示值是重复的。下一步是删除第二个重复项。 我希望将此构建集成到一个事件而不是两个单独的事件中。有没有办法做到这一点?或者是否有另一种方法可以根据第一列中的值删除重复的行?

1 个答案:

答案 0 :(得分:2)

我认为你需要的只是一个声明:

@Bind

其中Cells.RemoveDuplicates 1 表示第一列1,其中应检查并删除重复项。

如果键分布在许多列上,例如第1列和第3列,则可以根据这些列删除重复项:

A