Unieke items retourneren met VBA in Microsoft Excel

Anonim

In dit artikel zullen we een macro maken om unieke waarden uit het gedefinieerde bereik te extraheren.

De onbewerkte gegevens voor dit voorbeeld bestaan ​​uit dubbele vermeldingen van landnamen in het bereik A7:A21.

We hebben de macro "FindUniqueValues" gemaakt om unieke waarden uit het gedefinieerde bereik te extraheren. Deze macro kan worden uitgevoerd door op de knop "Verzenden" te klikken. Voordat we op de knop "Verzenden" klikken, moeten we het adres specificeren van het bereik dat dubbele gegevens bevat in de cel H9 en het adres van de bestemming waar de uitvoer moet verschijnen.

Logische uitleg

De macro "FindUniqueValues" neemt twee bereikobjecten als invoerparameters. De eerste parameter definieert het bereik dat de dubbele gegevens bevat en de tweede parameter definieert de positie van de startcel die de uitvoer zal bevatten. Deze macro kan niet rechtstreeks worden aangeroepen omdat we de parameters moeten specificeren, dus hebben we een tweede macro "MacroRunning" gemaakt om de macro aan te roepen.

De macro "MacroRunning" roept de macro "FindUniqueValues" aan met de parameterinvoer door de gebruiker.

Code uitleg

SourceRange.AdvancedFilter Actie:=xlFilterCopy, _

CopyToRange:=TargetCell, Unique:=True

De methode AdvancedFilter van het Range-object wordt gebruikt om gegevens uit het bereik te filteren of te kopiëren op basis van bepaalde criteria. Om alleen de unieke waarden te kopiëren, moeten we de Unique parameter van AdvancedFilter op True zetten.

Volg hieronder voor de code:

 Optie Explicit Sub FindUniqueValues ​​(SourceRange As Range, TargetCell As Range) 'Vooraf filter gebruiken voor het extraheren van unieke items in het bronbereik SourceRange.AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=TargetCell, Unique:=True End Sub Sub MacroRunning() De macro FindUniqueValues ​​aanroepen Bel FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value)) End Sub 

Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.

We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite