Finden zweithöchste Wert in Excel VBA
Im Folgenden werden wir ein Programm in Excel VBA suchen, die den zweithöchsten Wert findet.
Situation:
-
Zuerst erklären wir zwei Range-Objekte und zwei Variablen vom Typ Double. Wir rufen die Range-Objekte rng und Zelle. Ein Doppel-Variable, die wir highestValue nennen, und ein Doppel Variable nennen wir secondHighestValue.
Dim rng As Range, cell As Range Dim highestValue As Double, secondHighestValue As Double
-
Wir initialisieren das Range-Objekt RNG mit dem ausgewählten Bereich und die beiden Doppel Variablen mit dem Wert 0
Set rng = Selection highestValue = 0 secondHighestValue = 0
-
Zunächst wollen wir den höchsten Wert finden. Wir wollen jede Zelle in einem zufällig ausgewählten Bereich überprüfen (dieser Bereich jeder Größe sein kann). In Excel VBA können Sie die For Each Next-Schleife für diese. Fügen Sie die folgenden Codezeilen:
'Find Highest Value For Each cell In rng Next cell
Hinweis: RNG und Zelle sind hier zufällig ausgewählt, können Sie alle Namen verwenden.
Denken Sie daran, diese Namen in dem Rest des Codes zu beziehen. Die grüne Linie ist ein Kommentar und wird hier nur hinzugefügt Informationen über dieses Stück Code zu liefern.
-
Wir überprüfen jede Zelle in diesem Bereich. Wenn es höher als highestValue, schreiben wir den Wert der Variablen highestValue. Fügen Sie die folgende Codezeile an der Schleife.
If cell.Value > highestValue Then highestValue = cell.Value
Hinweis: Der erste Wert ist immer höher als highestValue weil der Ausgangswert von highestValue 0 ist
-
Zweitens wollen wir den zweithöchsten Wert finden. Wir fügen eine weitere For Each Next-Schleife.
'Find Second Highest Value For Each cell In rng Next cell
-
Wir überprüfen jede Zelle in dem wieder gewählten Bereich. Wenn es höher als secondHighestValue und niedriger als highestValue, schreiben wir den Wert der Variablen secondHighestValue. Fügen Sie die folgende Codezeile an der Schleife.
If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value
-
Schließlich zeigen wir den zweithöchsten Wert ein MsgBox verwenden.
MsgBox "Second Highest Value is " & secondHighestValue
-
Setzen Sie Ihr Makro in einem Befehlsschaltfläche, wählen Sie die Nummer ein, und klicken Sie auf den Befehlsschaltflächen.
Ergebnis: