Hitta unika värden med VBA i Microsoft Excel

Anonim

I den här artikeln kommer vi att skapa anpassade funktioner för att hitta unika värden från det definierade intervallet.

Rådata för detta exempel består av dubbletter av landnamn i intervallet A8: A21.

Logisk förklaring

Vi har skapat en anpassad funktion “UniqueItem” för att extrahera de unika värdena från intervallet. Denna funktion tar två parametrar som ingång. Den första parametern är intervallet som består av dubblettdata och den andra parametern definierar indexnumret för ett unikt värde i den unika samlingen.

Denna funktion returnerar det unika värdet från intervallet baserat på indexnumret. Den andra parametern är en valfri parameter, om den andra parametern inte är specificerad returnerar funktionen antalet unika värden i det definierade intervallet.

Om värdet som definieras för den andra parametern är större än antalet unika värden i intervallet är det senaste unika värdet retur av funktionen.

Kodförklaring

Vid fel Återuppta nästa

För varje cellvärde i InputRange

CUnique.Add CellValue.Value, CStr (CellValue.Value)

Nästa

Vid fel GoTo 0

Ovanstående kod används för att skapa samlingsobjekt som innehåller ett unikt värde från det definierade intervallet. "On Error" -uttalanden används för att hantera fel, eftersom när kod försöker sätta dubbla värden i samlingen kommer samlingen att generera ett fel.

Följ koden nedan

 Alternativ Explicit Function UniqueItem (InputRange As Range, Option Item No As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Lägga till unika objekt i samlingen från definierat intervall För varje cellvärde i InputRange CUnique .Add CellValue.Value, CStr (CellValue.Value) Next On Error GoTo 0 'Få räkningen av unikt objekt i samlingen UCount = CUnique.Count If ItemNo = 0 Sedan' Retur count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Sedan "Returnerar unikt värde baserat på artikelnummer UniqueItem = CUnique (ItemNo) Else" Returnerar det senaste unika värdet UniqueItem = CUnique (UCount) End If End -funktion 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen