Sortieren Zahlen in Excel VBA
Im Folgenden werden wir ein Programm in Excel VBA suchen, die Zahlen sortiert.
Situation:
Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:
-
Zuerst erklären wir drei Variablen vom Typ Integer und ein Range-Objekt.
Dim i As Integer, j As Integer, temp As Integer, rng As Range
-
Wir initialisieren das Objekt Schaltstellung RNG mit den Zahlen in Spalte A Wir haben den Current Eigenschaft für diese.
Current ist nützlich, wenn wir nicht wissen, die genauen Grenzen eines Bereichs im Voraus (wir dieses Programm an die Arbeit für 9 Zahlen wollen, sondern auch 90 Nummern für).
Set rng = Range("A1").CurrentRegion
Wir beginnen 3. zwei für Next-Schleifen.
For i = 1 To rng.Count For j = i + 1 To rng.Count
Erläuterung: rng.Count gleich 9 ist, so dass die ersten beiden Codelinien zu reduzieren für i = 1 bis 9 und für j = i + 1 bis 9 für i = 1, j = 2, 3, …, 8 und 9 geprüft.
-
Um die Zahlen richtig zu sortieren, vergleichen wir die erste Zahl mit der nächsten Nummer. Wenn die nächste Nummer kleiner ist, tauschen wir die Zahlen. Fügen Sie die folgende If Then-Anweisung.
If rng.Cells(j) < rng.Cells(i) Then End If
Wenn die obige Aussage wahr ist, tauschen wir die Zahlen.
Zum Beispiel: I 1 = und j = 2, die Zahlen 2 und 10 verglichen werden. Die obige Aussage ist nicht wahr. So, keine Notwendigkeit, die Zahlen zu tauschen. Excel-VBA-Schritte 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, so noch keine Notwendigkeit, die Zahlen zu tauschen. Wir bekommen das gleiche Ergebnis für j = 4, j = 5 und j = 6. Wenn wir bei j ankommen = 7, die obige Aussage wahr ist seit 1 kleiner als 2 ist
-
Wir swap die Zahlen. Wir speichern vorübergehend eine Nummer zu temp, so dass Excel VBA richtig die Zahlen tauschen kann. Fügen Sie die folgenden Codezeilen in der If-Anweisung.
'swap numbers temp = rng.Cells(i) rng.Cells(i) = rng.Cells(j) rng.Cells(j) = temp
-
Wir schließen die zweite For Next-Schleife (Direkt vor der If-Anweisung).
Next j
Für i 1 und j = = 7, tauschte Excel VBA die Zahlen. Das heißt, wir 1 an der ersten Position und an der Position 2 erhalten 7. Nachdem wir nun 1 an der ersten Position haben, werden wir diesen Wert mit 5 (für j = 8) und 4 (für j = 9) vergleichen. Es besteht keine Notwendigkeit, die Zahlen zu tauschen (1 ist die kleinste Zahl).
Auf diese Weise Excel VBA wird (für i = 1) die kleinste Zahl in der ersten Position. Um die zweiten kleinste Zahl in der zweiten Position zu erhalten, wiederholt Excel VBA exakt die gleichen Schritte für i 2. = Um die dritte kleinste Zahl an der dritten Position zu erhalten, wiederholt Excel VBA exakt die gleichen Schritte für i 3 = usw.
-
Schließen Sie die erste Schleife For Next (Direkt vor der If-Anweisung).
Next i
-
Ihr Programm testen.
Ergebnis: