Im Folgenden werden wir ein Programm in Excel VBA suchen, die den zweithöchsten Wert findet.

Situation:

Find Second Highest Value in Excel VBA

  1. 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
  1. 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
  1. 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.

  1. 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

  1. 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
  1. 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
  1. Schließlich zeigen wir den zweithöchsten Wert ein MsgBox verwenden.

MsgBox "Second Highest Value is " & secondHighestValue
  1. Setzen Sie Ihr Makro in einem Befehlsschaltfläche, wählen Sie die Nummer ein, und klicken Sie auf den Befehlsschaltflächen.

Ergebnis:

Find Second Highest Value Result