Die Suche nach eindeutigen Werten mit VBA in Microsoft Excel
In diesem Artikel erstellen wir eine benutzerdefinierte Funktion, um eindeutige Werte aus dem definierten Bereich zu finden.
Die Rohdaten für dieses Beispiel bestehen aus doppelten Einträgen des Ländernamens im Bereich A8: A21.
Logische Erklä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.
Code Erklärung
On Error Resume Next für jeden CellValue in InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)
[_GoBack] # Next On Error GoTo 0 Der obige Code wird zum Erstellen eines Sammlungsobjekts verwendet, 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 aufzunehmen, generiert die Sammlung einen Fehler.
Bitte folgen Sie unten für den Code
Option Explicit Function 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 'Adding unique items to collection from defined range For Each CellValue In InputRange CUnique.Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Getting count of unique item in the collection UCount = CUnique.Count If ItemNo = 0 Then 'Returning count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Returning unique value based on item number UniqueItem = CUnique(ItemNo) Else 'Returning last unique value UniqueItem = CUnique(UCount) End If End Function
Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]