Vba: unieke waarden uit een kolom halen
Je kunt de functie AdvancedFilter in VBA gebruiken om snel een lijst met unieke waarden uit een kolom in Excel te krijgen.
Hier is een gebruikelijke manier om dit te doen:
Sub GetUniqueValues()
Range(" A1:A11 ").AdvancedFilter_
Action:=xlFilterCopy, CopyToRange:=Range(" E1 "), Unique:= True
End Sub
Dit specifieke voorbeeld extraheert een lijst met unieke waarden uit het bereik A1:A11 en geeft deze weer vanuit cel E1 .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Haal unieke waarden uit een kolom met behulp van VBA
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
Stel dat we een lijst met unieke waarden uit de kolom Team willen extraheren.
We kunnen hiervoor de volgende macro maken:
Sub GetUniqueValues()
Range(" A1:A11 ").AdvancedFilter_
Action:=xlFilterCopy, CopyToRange:=Range(" E1 "), Unique:= True
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Kolom E toont nu een lijst met unieke waarden uit de kolom Team in de originele dataset.
Houd er rekening mee dat de AdvancedFilter -methode hoofdlettergevoelig is.
Als we bijvoorbeeld de teamnamen „MAVS“ en „Mavs“ in dezelfde kolom hadden staan, zou deze specifieke macro alleen de eerste van de twee waarden retourneren die in de kolom Team verschijnen, omdat ze exact dezelfde karakters delen.
Opmerking : u kunt hier de volledige documentatie van de AdvancedFilter- methode in VBA vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: cellen tellen met specifieke tekst
VBA: het aantal rijen binnen bereik tellen
VBA: unieke waarden binnen bereik tellen