/ / Sortieren Sie Daten nach dem Zufallsprinzip in Excel VBA

Sortieren Sie Daten nach dem Zufallsprinzip in Excel VBA

Unten sehen wir uns ein Programm in Excel VBA Das sortiert nach dem Zufallsprinzip Daten (In diesem Beispiel werden Namen zufällig sortiert).

Situation:

Sortieren Sie Daten nach dem Zufallsprinzip in Excel VBA

1. Zuerst deklarieren wir vier Variablen. Eine Variable vom Typ String heißt TempString, eine Variable vom Typ Integer heißen wir TempInteger, eine Variable vom Typ Integer rufen wir i auf und eine Variable vom Typ Integer nennen wir j.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. Wir schreiben 5 Zufallszahlen in Spalte B (eine für jeden Namen). Dafür verwenden wir die Arbeitsblattfunktion RandBetween.

For i = 1 To 5
    Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Next i

Ergebnis bisher:

Ergebnis soweit

Wir werden die Nummern neben jedem Namen verwenden, um die Namen zu sortieren. Der Name mit der niedrigsten Nummer zuerst, der Name mit der zweitniedrigsten Nummer, Sekunde usw.

3. Wir starten eine Doppelschleife.

For i = 1 To 5
    For j = i + 1 To 5

4. Fügen Sie die folgende Codezeile hinzu:

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

Beispiel: für i = 1 und j = 2 werden Wendy und Richard verglichen. Weil Richard eine niedrigere Nummer hat, tauschen wir Wendy und Richard. Richard ist jetzt auf der ersten Position. Für i = 1 und j = 3 werden Richard und Joost verglichen. Joost hat eine höhere Nummer, also passiert nichts. Auf diese Weise erhält Excel VBA den Namen mit der niedrigsten Nummer an der ersten Position. Für i = 2 erhält Excel VBA den Namen mit der zweitniedrigsten Nummer an der zweiten Position usw.

5. Wenn das stimmt, tauschen wir die Namen.

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

6. Und wir tauschen die Zahlen aus.

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

7. Vergessen Sie nicht, die If-Anweisung zu schließen.

End If

8. Vergessen Sie nicht, die beiden Schleifen zu schließen.

    Next j
Next i

9. Testen Sie das Programm.

Ergebnis:

Zufälliges Sortieren von Daten Ergebnis

Hinweis: Sie können eine Zeile hinzufügen, die die Zahlen in Spalte B löscht. Es ist noch schöner, die Zahlen jedes Namens in einem Array zu platzieren, so dass keine Zahlen auf Ihrem Arbeitsblatt platziert werden. Aus Gründen der Veranschaulichung haben wir jedoch gewählt, den Werte auf dem Blatt.

Lesen Sie auch: