Fügen Sie eindeutige Werte mit VBA in Microsoft Excel
In diesem Artikel erstellen wir eine benutzerdefinierte Funktion (UDF) oder eine benutzerdefinierte Funktion, um eindeutige Werte in einem definierten Bereich hinzuzufügen.
Die Rohdaten für diesen Artikel bestehen aus Zufallszahlen in sieben verschiedenen Stichproben.
Fügen Sie eine weitere Spalte hinzu, um die Summe der Werte in jeder Zeile zu ermitteln.
In der Spalte „Gesamtsumme“ wird die Summe der Zahlen in jeder Zeile angezeigt.
Fügen Sie nun eine weitere Spalte hinzu, um die Summe nur eindeutiger Zahlen in jeder Zeile zu ermitteln. Wir haben eine benutzerdefinierte Funktion „AddDistinctValues“ erstellt, um die Summe der eindeutigen Zahlen zu ermitteln. Fügen Sie die Formel = AddDistinctValues (A11: G11) in Zelle I11 hinzu und ziehen Sie die Formel in andere Zeilen.
UDF „AddDistinctValues“ gibt die Summe der eindeutigen Zahlen im definierten Bereich an. In der Abbildung unten ist der Unterschied zwischen der Gesamtsumme und der Summe der eindeutigen Zahlen leicht zu erkennen.
Logische Erklärung
UDF „AddDistinctValues“ verwendet das Bereichsobjekt als Eingabe. Es werden eindeutige Zahlen im Eingabebereich addiert.
Um eindeutige Zahlen im Eingabebereich zu finden, haben wir ein Sammlungsobjekt verwendet. Da wir wissen, dass die Sammlung keine doppelten Werte speichern kann, werden beim Einfügen von Zahlen in den Eingabebereich der Sammlung keine doppelten Zahlen erneut in die Sammlung eingefügt, sondern es wird ein Fehler generiert.
Zur Behandlung des Fehlers haben wir die Anweisung „On Error Resume Next“ verwendet.
Diese Anweisung stoppt die Funktion nicht, wenn der Fehler auftritt. Stattdessen wechselt Loop zur nächsten Anweisung.
Sobald wir die eindeutigen Nummern in der Sammlung haben, können wir sie im Array hinzufügen.
Bitte folgen Sie unten für den Code
Function AddDistinctValues(InputRange As Range) As Integer 'Declaring variables Dim Rng As Range Dim UniqueValues As New Collection Dim UniqueValue As Variant 'Recalculates the function whenever calculation occur in any other cell Application.Volatile On Error Resume Next 'Adding unique values to collection from input range For Each Rng In InputRange UniqueValues.Add Rng.Value, CStr(Rng.Value) Next On Error GoTo 0 AddDistinctValues = 0 'Adding values in the collection For Each UniqueValue In UniqueValues AddDistinctValues = AddDistinctValues + UniqueValue Next End Function
Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren 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]