Eliminar duplicados del rango de celdas en Excel vba
excel-vba excel-2013 (2)
Para eliminar duplicados de una sola columna
Sub removeDuplicate()
''removeDuplicate Macro
Columns("A:A").Select
ActiveSheet.Range("$A$1:$A$117").RemoveDuplicates Columns:=Array(1), _
Header:=xlNo
Range("A1").Select
End Sub
si tiene un encabezado, entonces use
Header:=xlYes
Aumente su alcance según sus necesidades.
puedes llegar a 1000 así:
ActiveSheet.Range("$A$1:$A$1000")
Más información aquí aquí
Estoy tratando de eliminar duplicados en Excel 2013 VBA. pero recibo el error "el objeto no admite esta propiedad o método". El problema es que no tengo un rango estático para seleccionar. Quiero eliminar duplicados del encabezado de columna ''abcd''.
Cells.Find(what:="abcd").Activate
ActiveCell.EntireColumn.Select
Set rng = Selection
ActiveSheet.rng.RemoveDuplicates
Debe indicarle al método Range.RemoveDuplicates qué columna usar. Además, dado que ha expresado que tiene una fila de encabezado, debe decirle al método .RemoveDuplicates que.
Sub dedupe_abcd()
Dim icol As Long
With Sheets("Sheet1") ''<-set this worksheet reference properly!
icol = Application.Match("abcd", .Rows(1), 0)
With .Cells(1, 1).CurrentRegion
.RemoveDuplicates Columns:=icol, Header:=xlYes
End With
End With
End Sub
Su código original parecía querer eliminar duplicados de una sola columna mientras ignoraba los datos circundantes. Ese escenario es atípico y he incluido los datos circundantes para que el proceso .RemoveDuplicates no codifique sus datos. Publique un comentario si realmente desea aislar el proceso RemoveDuplicates en una sola columna.