我正在查找vba代码,它应该根据所有列找到重复的行并将这些行移动到另一个工作表。
就像Excel removeduplicate函数一样,但我希望将重复值保存在另一张表中。
任何帮助都会非常感激。
提前致谢。
答案 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