Daten nach dem Zufallsprinzip in Excel VBA sortieren - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden sehen wir uns ein Programm in an Excel VBA das sortiert Daten nach dem Zufallsprinzip (in diesem Beispiel werden die Namen zufällig sortiert).

Lage:

1. Zuerst deklarieren wir vier Variablen. Eine Variable vom Typ String nennen wir TempString, eine Variable vom Typ Integer nennen wir TempInteger, eine Variable vom Typ Integer nennen wir i 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). Dazu verwenden wir die Arbeitsblattfunktion RandBetween.

Für i = 1 bis 5
Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Als nächstes

Ergebnis bisher:

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

3. Wir starten eine Doppelschleife.

Für i = 1 bis 5
Für j = i + 1 bis 5

4. Fügen Sie die folgende Codezeile hinzu:

Wenn Zellen(j, 2).Wert < Zellen(i, 2).Wert Dann

Beispiel: Für i = 1 und j = 2 werden Wendy und Richard verglichen. Da Richard eine niedrigere Nummer hat, tauschen wir Wendy und Richard. Richard ist jetzt an erster Stelle. 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 Zahl an zweiter Stelle usw.

5. Wenn wahr, tauschen wir die Namen aus.

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

6. Und wir tauschen die Zahlen aus.

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

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

Ende Wenn

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

 Nächstes j
Als nächstes

9. Testen Sie das Programm.

Ergebnis:

Hinweis: Sie können eine Zeile hinzufügen, die die Zahlen in Spalte B löscht. Noch schöner ist es, die Zahlen jedes Namens in einem Array zu platzieren, damit keine Zahlen auf Ihrem Arbeitsblatt platziert werden. Zur Veranschaulichung haben wir uns jedoch dafür entschieden, die Werte auf dem Blatt zu platzieren.

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

wave wave wave wave wave