Sortieren von Zahlen in Excel VBA - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden sehen wir uns ein Programm in an Excel VBA das sortiert Zahlen.

Lage:

Platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt 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.

Für i = 1 To rng.Count
Für j = i + 1 To rng.Count

Erklärung: rng.Count gleich 9, also reduzieren sich die ersten beiden Codezeilen auf For i = 1 bis 9 und For j = i + 1 bis 9. For i = 1, j = 2, 3,… , 8 und 9 werden geprüft .

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

Wenn rng.Cells(j) < rng.Cells(i) Dann
Ende Wenn

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

Beispiel: Für i = 1 und j = 2 werden die Zahlen 2 und 10 verglichen. Die obige Aussage ist nicht wahr. Somit müssen die Nummern nicht ausgetauscht werden. Excel VBA erhöht j um 1 und wiederholt die Codezeilen für i = 1 und j = 3. Sie können leicht erkennen, dass 5 größer als 2 ist, sodass die Zahlen immer noch nicht ausgetauscht werden müssen. Dasselbe Ergebnis erhalten wir für j = 4, j = 5 und j = 6. Bei j = 7 ist die obige Aussage wahr, da 1 kleiner als 2 ist.

5. Wir tauschen die Zahlen. Wir speichern vorübergehend eine Zahl in temp, damit Excel VBA die Zahlen richtig austauschen kann. Fügen Sie der If-Anweisung die folgenden Codezeilen hinzu.

"Nummern tauschen"
temp = rng.Zellen(i)
rng.Zellen(i) = rng.Zellen(j)
rng.Zellen(j) = temp

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

Nächstes j

Für i = 1 und j = 7 hat Excel VBA die Zahlen vertauscht. Das heißt, wir erhalten 1 an erster Stelle und 2 an Stelle 7. Da wir nun 1 an erster Stelle haben, vergleichen wir diesen Wert mit 5 (für j = 8) und 4 (für j = 9). Die Zahlen müssen nicht vertauscht werden (1 ist die kleinste Zahl). Auf diese Weise bekommt Excel VBA (für i = 1) die kleinste Zahl an erster Stelle. 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).

Als nächstes

8. Testen Sie Ihr Programm.

Ergebnis:

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave