Im Folgenden an einem Programm in Excel VBA, die zufällig Daten sortiert aussehen wird (in diesem Beispiel sortiert zufällig Namen).

Situation:

Randomly Sort Data in Excel VBA

  1. Zuerst erklären wir vier Variablen. Eine Variable vom Typ String wir tempString nennen, eine Variable vom Typ Integer nennen wir TempInteger, eine Variable vom Typ Integer wir i nennen, und eine Variable vom Typ Integer wir j nennen.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
  1. Wir schreiben 5 Zufallszahlen Spalte B (eine für jeden Namen). Wir verwenden die Tabellenfunktion RANDBETWEEN dafür.

For i = 1 To 5

Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)

Next i

Ergebnis bisher:

Result so far

Wir werden die Zahlen verwenden neben jedem Namen die Namen zu sortieren. Der Name mit der niedrigsten Nummer zuerst, der Name mit der zweitniedrigsten Zahl, zweiten usw.

  1. Wir beginnen eine doppelte Schleife.

For i = 1 To 5

For j = i + 1 To 5
  1. Folgende Codezeile hinzu:

If Cells(j, 2).Value < Cells(i, 2).Value Then

Beispiel: für i = 1 und j = 2, Wendy und Richard verglichen. Da Richard eine niedrigere Zahl hat, tauschen wir Wendy und Richard. Richard ist an der ersten Position jetzt. Für i 1 und j = = 3, Richard und Joost verglichen.

Joost hat eine höhere Zahl, so passiert nichts. Auf diese Weise bekommt Excel VBA den Namen mit der niedrigsten Zahl an der ersten Position. Für i = 2, wird Excel VBA den Name mit der zweiten niedrigsten Nummer in der zweiten Position usw.

  1. Wenn das stimmt, wir swap die Namen.

tempString = Cells(i, 1).Value

Cells(i, 1).Value = Cells(j, 1).Value

Cells(j, 1).Value = tempString
  1. Und wir tauschen die Zahlen.

tempInteger = Cells(i, 2).Value

Cells(i, 2).Value = Cells(j, 2).Value

Cells(j, 2).Value = tempInteger
  1. Vergessen Sie nicht, die If-Anweisung zu schließen.

End If
  1. Vergessen Sie nicht die beiden Schleifen zu schließen.

Next j

Next i
  1. Testen Sie das Programm.

Ergebnis:

Randomly Sort Data Result

Hinweis: Sie können eine Zeile hinzufügen, die die Zahlen in Spalte B löscht Es ist noch schöner, die Zahlen der einzelnen Namen in einer Reihe zu platzieren, so dass keine Zahlen auf dem Arbeitsblatt platziert werden. Jedoch zu Veranschaulichungszwecken haben wir gewählt, um die Werte auf dem Blatt zu platzieren.