excel vba excel-vba excel-2013

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.