Im Folgenden werden wir ein Programm in Excel VBA suchen, die Zahlen sortiert.

Situation:

Sort Numbers Example

Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

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

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

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

  1. Schließen Sie die erste Schleife For Next (Direkt vor der If-Anweisung).

Next i
  1. Ihr Programm testen.

Ergebnis:

Sort Numbers in Excel VBA