Reputation: 49
I am new to excel macros and would like to create loop that identified a column range and hopefully a row range to remove duplicates. Currently I have taken the long way around that created an excel formula to create the macro script for the below.
Any help with the below would be much appreciated cause I am now at 60 columns and need to add another 40...
Thank you
Sheets("Result").Select
Columns("A:A").Select
ActiveSheet.Range("$A$1:$A$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Columns("B:B").Select
ActiveSheet.Range("$B$1:$B$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Columns("C:C").Select
ActiveSheet.Range("$C$1:$C$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Columns("D:D").Select
ActiveSheet.Range("$D$1:$D$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Columns("E:E").Select
ActiveSheet.Range("$E$1:$E$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Columns("F:F").Select
ActiveSheet.Range("$F$1:$F$100000").RemoveDuplicates Columns:=1, Header:=xlNo
Upvotes: 2
Views: 1747
Reputation: 301
This will work if you only care about duplicates per column.
Sub RemoveDuplicates()
'Stop the screen from updating to reduce lag
Application.ScreenUpdating = False
'Main loop
For i = 1 To 100
ActiveWorkbook.Sheets("Result").Columns(i).RemoveDuplicates Columns:=1, Header:=xlNo
Next
'Reset ScreenUpdating
Application.ScreenUpdating = True
End Sub
Upvotes: 2
Reputation: 96791
This will perform a column-by-column duplicate removal:
Sub Kleanup()
For i = 1 To Columns.Count
Columns(i).Cells.RemoveDuplicates Columns:=1, Header:=xlNo
Next i
End Sub
Upvotes: 1
Reputation: 5731
You need a loop!
Sub RemoveDuplicates()
Dim TargetSheet As Worksheet
Set TargetSheet = ActiveWorkbook.Worksheets("Result")
For i = 1 To 100
TargetSheet.Cells(1, i).EntireColumn.RemoveDuplicates Columns:=1, Header:=xlNo
Next i
End Sub
Upvotes: 1