Finden eindeutiger Werte mit VBA in Microsoft Excel

Anonim

In diesem Artikel erstellen wir eine benutzerdefinierte Funktion, um eindeutige Werte aus dem definierten Bereich zu finden.

Rohdaten für dieses Beispiel bestehen aus doppelten Einträgen des Ländernamens im Bereich A8:A21.

Logikerklärung

Wir haben eine benutzerdefinierte Funktion „UniqueItem“ erstellt, um die eindeutigen Werte aus dem Bereich zu extrahieren. Diese Funktion verwendet zwei Parameter als Eingabe. Der erste Parameter ist der Bereich, der aus den doppelten Daten besteht, und der zweite Parameter definiert die Indexnummer eines eindeutigen Werts in der eindeutigen Sammlung.

Diese Funktion gibt den eindeutigen Wert aus dem Bereich basierend auf der Indexnummer zurück. Der zweite Parameter ist ein optionaler Parameter. Wenn der zweite Parameter nicht angegeben ist, gibt die Funktion die Anzahl der eindeutigen Werte im definierten Bereich zurück.

Wenn der für den zweiten Parameter definierte Wert größer als die Anzahl der eindeutigen Werte im Bereich ist, wird der letzte eindeutige Wert von der Funktion zurückgegeben.

Codeerklärung

Bei Fehler Fortsetzen als nächstes

Für jeden CellValue in InputRange

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

Nächste

Bei Fehler GoTo 0

Der obige Code wird verwendet, um ein Sammlungsobjekt zu erstellen, das einen eindeutigen Wert aus dem definierten Bereich enthält. „On Error“-Anweisungen werden verwendet, um Fehler zu behandeln. Wenn Code versucht, doppelte Werte in die Sammlung einzufügen, generiert die Sammlung einen Fehler.

Bitte folgen Sie unten für den Code

 Option Explizite Funktion UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Hinzufügen eindeutiger Elemente zur Sammlung aus dem definierten Bereich für jeden CellValue in InputRange CUnique .Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Zählung des eindeutigen Elements in der Sammlung abrufen UCount = CUnique.Count If ItemNo = 0 Then 'Zählung des eindeutigen Elements zurückgeben UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Eindeutigen Wert basierend auf Artikelnummer zurückgeben UniqueItem = CUnique(ItemNo) Else 'Letzten eindeutigen Wert zurückgeben UniqueItem = CUnique(UCount) End If End Function 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site