将重复行移动到另一个工作表中

时间:2017-07-21 10:32:39

标签: excel-vba duplicates move worksheet vba

我正在查找vba代码,它应该根据所有列找到重复的行并将这些行移动到另一个工作表。

就像Excel removeduplicate函数一样,但我希望将重复值保存在另一张表中。

任何帮助都会非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

此代码将根据列A剪切活动工作表上的重复行。 它会将剪切的行粘贴到名为" Duplicates"的工作表中。

 Sub CutDuplicates()
    Dim Rng As Range, i As Long
        Application.ScreenUpdating = False
        Set Rng = Range("DH2:DH" & Range("DH" & Rows.Count).End(xlUp).Row)
        For i = Rng.Rows.Count To 1 Step -1
            If Application.WorksheetFunction.CountIf(Rng, Cells(i, "DH")) > 1 Then
              lr = Sheets("Duplicates").Cells(Rows.Count, "DH").End(xlUp).Row + 1
              Rows(i).EntireRow.Cut Destination:=Sheets("Duplicates").Range("A" & lr)
              Rows(i).EntireRow.Delete
            End If
        Next i
        Application.ScreenUpdating = True
    End Sub

这是在50行测试表上测试的,但它也适用于较大的行工作表。

答案 1 :(得分:0)

我有一个庞大的数据,删除重复的行我使用下面的代码。列号和行号始终是动态的。

Sub DeDupe()

Dim intArray As Variant, i As Integer
Dim rng As Range
Set rng = ActiveSheet.UsedRange.Rows
With rng
    ReDim intArray(0 To .Columns.Count - 1)
    For i = 0 To UBound(intArray)
        intArray(i) = i + 1
    Next i
    .RemoveDuplicates Columns:=(intArray), Header:=xlYes
End With

End Sub