/ / Zahlen in Excel VBA sortieren

Sortieren Sie Zahlen in Excel VBA

Unten sehen wir uns ein Programm in Excel VBA Das Sortiert die Nummern.

Situation:

Zahlen sortieren Beispiel

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

1. Zuerst deklarieren wir drei Variablen vom Typ Integer und ein Range-Objekt.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2. Wir initialisieren das Range-Objekt rng mit den Zahlen in Spalte A. Dazu verwenden wir die CurrentRegion-Eigenschaft. CurrentRegion ist nützlich, wenn wir die genauen Grenzen eines Bereichs nicht im Voraus kennen (wir möchten, dass dieses Programm für 9 Zahlen, aber auch für 90 Zahlen funktioniert).

Set rng = Range("A1").CurrentRegion

3. Wir starten zwei For Next-Schleifen.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

Erklärung: rng.Count ist gleich 9, also reduzieren sich die ersten beiden Codezeilen auf For i = 1 bis 9 und für j = i + 1 bis 9. Für i = 1, j = 2, 3, ..., 8 und 9 sind überprüft.

4. Um die Nummern richtig zu sortieren, vergleichen wir die erste Nummer mit der nächsten Nummer. Wenn die nächste Zahl kleiner ist, tauschen wir die Zahlen aus. Fügen Sie die folgende If Then-Anweisung hinzu.

If rng.Cells(j) < rng.Cells(i) Then

End If

Wenn die obige Aussage wahr ist, tauschen wir die Zahlen aus.

Zum Beispiel: für i = 1 und j = 2 werden die Zahlen 2 und 10 verglichen. Die obige Aussage ist nicht wahr. Daher müssen Sie die Nummern nicht tauschen. Excel VBA inkrementiert j um 1 und wiederholt die Codezeilen für i = 1 und j = 3. Sie können leicht sehen, dass 5 größer als 2 ist, also brauchen Sie die Zahlen nicht zu tauschen. Wir erhalten dasselbe Ergebnis für j = 4, j = 5 und j = 6. Wenn wir bei j = 7 ankommen, ist die obige Aussage wahr, da 1 kleiner als 2 ist.

5. Wir tauschen die Zahlen aus. Wir speichern temporär eine Nummer in temp, so dass Excel VBA die Nummern richtig austauschen kann. Fügen Sie die folgenden Codezeilen in der If-Anweisung hinzu.

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. Wir schließen die zweite For Next-Schleife (außerhalb der If-Anweisung).

Next j

Für i = 1 und j = 7 tauschte Excel VBA dieZahlen. Das heißt, wir erhalten 1 an der ersten Position und 2 an Position 7. Jetzt, da wir 1 an der ersten Position haben, vergleichen wir diesen Wert mit 5 (für j = 8) und 4 (für j = 9). Es besteht keine Notwendigkeit, die Nummern zu tauschen (1 ist die kleinste Zahl). Auf diese Weise erhält Excel VBA (für i = 1) die kleinste Zahl an der ersten Position. Um die zweitkleinste Zahl an der zweiten Position zu erhalten, wiederholt Excel VBA genau die gleichen Schritte für i = 2. Um die drittkleinste Zahl an der dritten Position zu erhalten, wiederholt Excel VBA genau die gleichen Schritte für i = 3 usw.

7. Schließen Sie die erste For Next-Schleife (außerhalb der If-Anweisung).

Next i

8. Testen Sie Ihr Programm.

Ergebnis:

Sortieren Sie Zahlen in Excel VBA

Lesen Sie auch: