Finne unike verdier ved hjelp av VBA i Microsoft Excel

Anonim

I denne artikkelen vil vi lage tilpasset funksjon for å finne unike verdier fra det definerte området.

Rådata for dette eksemplet består av dupliserte oppføringer av landnavn i området A8: A21.

Logisk forklaring

Vi har laget en egendefinert funksjon “UniqueItem” for å trekke ut de unike verdiene fra området. Denne funksjonen tar to parametere som inngang. Den første parameteren er området som består av dupliserte data, og den andre parameteren definerer indeksnummeret til en unik verdi i den unike samlingen.

Denne funksjonen returnerer den unike verdien fra området basert på indeksnummeret. Andre parameter er en valgfri parameter, hvis andre parameter ikke er spesifisert, returnerer funksjonen antallet unike verdi i det definerte området.

Hvis verdien definert for den andre parameteren er større enn antallet unike verdier i området, er siste unike verdi retur av funksjonen.

Kode forklaring

Ved feil Fortsett neste

For hver celleverdi i InputRange

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

Neste

Ved feil GoTo 0

Koden ovenfor brukes til å lage et samleobjekt som vil inneholde en unik verdi fra det definerte området. "On Error" -setninger brukes til å håndtere feil, som når kode prøver å sette dupliserte verdier i samlingen, vil samlingen generere en feil.

Følg koden nedenfor

 Alternativ Eksplisitt Funksjon UniqueItem (InputRange As Range, Valgfritt ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Legge til unike elementer i samlingen fra definert område For hver CellValue I InputRange CUnique .Legg til CellValue.Value, CStr (CellValue.Value) Neste ved feil Gå til 0 'Få telling av unikt element i samlingen UCount = CUnique.Count If ItemNo = 0 Deretter' Returnerer antall unike varer UniqueItem = UCount ElseIf ItemNo <= UCount Deretter 'Returnerer unik verdi basert på varenummer UniqueItem = CUnique (ItemNo) Else' Returnerer siste unike verdi UniqueItem = CUnique (UCount) End If End -funksjon 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post