J'essaie de supprimer les doublons dans Excel 2013 VBA. mais j'obtiens l'erreur "l'objet ne prend pas en charge cette propriété ou cette méthode". Le problème est que je n'ai pas de plage statique à sélectionner. Je veux supprimer les doublons du curseur de colonne 'abcd'.
Cells.Find(what:="abcd").Activate
ActiveCell.EntireColumn.Select
Set rng = Selection
ActiveSheet.rng.RemoveDuplicates
Vous devez indiquer à la méthode Range.RemoveDuplicates quelle colonne utiliser. De plus, puisque vous avez indiqué que vous disposez d'une ligne d'en-tête, vous devez le dire à la méthode .RemoveDuplicates.
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
Votre code d'origine semblait vouloir supprimer les doublons d'une seule colonne tout en ignorant les données environnantes. Ce scénario est atypique et j'ai inclus les données environnantes afin que le processus .RemoveDuplicates ne brouille pas vos données. Publiez un commentaire si vous vouliez vraiment isoler le processus RemoveDuplicates dans une seule colonne.
Pour supprimer les doublons d'une seule colonne
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 vous avez un en-tête, utilisez Header:=xlYes
Augmentez votre portée selon vos besoins.
vous pouvez atteindre 1000 comme ceci:
ActiveSheet.Range("$A$1:$A$1000")
Plus d'informations ici ici