将重复行移入另一个表

问题描述:

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

就像Excel删除重复函数,但我想保留重复值在另一个工作表。

任何帮助将不胜感激。

在此先感谢。

+0

到目前为止你做了什么?任何代码? –

+0

下面是我用于删除重复行的代码,但我需要删除的行进行数据验证。 – Kavitha

此代码将根据列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行测试表上测试的,但它也应该适用于较大的行工作表。

+0

它是基于列DH,而不是A. –

+0

我的错误,但它是模板,他必须修改它,这只是示例 – Armin

+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