In dit artikel zullen we een aangepaste functie maken om unieke waarden uit het gedefinieerde bereik te vinden.
De onbewerkte gegevens voor dit voorbeeld bestaan uit dubbele vermeldingen van de landnaam in het bereik A8:A21.
Logische uitleg
We hebben een aangepaste functie "UniqueItem" gemaakt om de unieke waarden uit het bereik te extraheren. Deze functie heeft twee parameters als invoer. De eerste parameter is het bereik dat bestaat uit de dubbele gegevens en de tweede parameter definieert het indexnummer van een unieke waarde in de unieke verzameling.
Deze functie retourneert de unieke waarde uit het bereik op basis van het indexnummer. De tweede parameter is een optionele parameter. Als de tweede parameter niet is opgegeven, retourneert de functie het aantal unieke waarden in het gedefinieerde bereik.
Als de waarde die is gedefinieerd voor de tweede parameter groter is dan het aantal unieke waarden in het bereik, wordt de laatste unieke waarde geretourneerd door de functie.
Code uitleg
Bij fout Hervatten Volgende
Voor elke celwaarde in invoerbereik
CUnique.Add CellValue.Value, CStr(CellValue.Value)
Volgende
Bij fout Ga naar 0
Bovenstaande code wordt gebruikt om een verzamelingsobject te maken dat een unieke waarde uit het gedefinieerde bereik zal bevatten. "On Error" -instructies worden gebruikt om fouten af te handelen, omdat wanneer code dubbele waarden in de verzameling probeert te plaatsen, de verzameling een fout genereert.
Volg hieronder voor de code:
Optie Expliciete functie UniqueItem(InputRange As Range, Optioneel ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Hervatten Volgende 'Unique items toevoegen aan verzameling uit gedefinieerd bereik For Each CellValue In InputRange CUnique .Add CellValue.Value, CStr(CellValue.Value) Volgende bij fout GoTo 0 'Tellen van uniek item in de collectie ophalen UCount = CUnique.Count If ItemNo = 0 Then 'Telling van uniek item UniqueItem = UCount ElseIf ItemNo <= UCount Dan 'Retourneren van unieke waarde op basis van artikelnummer UniqueItem = CUnique (ItemNo) Else 'Retourneren van laatste unieke waarde UniqueItem = CUnique (UCount) End If End Function
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