Níže se podíváme na program v Excel VBA že náhodně třídí data (v tomto případě náhodně seřadí jména).
Situace:
1. Nejprve deklarujeme čtyři proměnné. Jednu proměnnou typu String nazýváme TempString, jednu proměnnou typu Integer nazýváme TempInteger, jednu proměnnou typu Integer nazýváme i a jednu proměnnou typu Integer nazýváme j.
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
2. Do sloupce B napíšeme 5 náhodných čísel (pro každé jméno jedno). K tomu používáme funkci pracovního listu RandBetween.
Pro i = 1 až 5
Buňky (i, 2) .Hodnota = WorksheetFunction.RandBetween (0, 1000)
Příště já
Dosavadní výsledek:
K seřazení jmen použijeme čísla vedle každého jména. Jméno s nejnižším číslem jako první, jméno s druhým nejnižším číslem, druhé atd.
3. Začínáme s dvojitou smyčkou.
Pro i = 1 až 5
Pro j = i + 1 až 5
4. Přidejte následující řádek kódu:
Pokud buňky (j, 2). Hodnota <buňky (i, 2). Hodnota pak
Příklad: pro i = 1 a j = 2 jsou porovnávány Wendy a Richard. Protože Richard má nižší číslo, vyměňujeme Wendy a Richarda. Richard je nyní na první pozici. Pro i = 1 a j = 3 se porovnají Richard a Joost. Joost má vyšší číslo, takže se nic neděje. Tímto způsobem aplikace Excel VBA získá jméno s nejnižším číslem na první pozici. Pro i = 2 získá Excel VBA název s druhým nejnižším číslem na druhé pozici atd.
5. Pokud je to pravda, prohodíme jména.
tempString = Buňky (i, 1). Hodnota
Buňky (i, 1). Hodnota = buňky (j, 1). Hodnota
Buňky (j, 1). Hodnota = tempString
6. A vyměníme si čísla.
tempInteger = Buňky (i, 2). Hodnota
Buňky (i, 2). Hodnota = buňky (j, 2). Hodnota
Buňky (j, 2). Hodnota = tempInteger
7. Nezapomeňte zavřít příkaz If.
Konec If
8. Nezapomeňte uzavřít dvě smyčky.
Další j
Příště já
9. Otestujte program.
Výsledek:
Poznámka: můžete přidat řádek, který odstraní čísla ve sloupci B. Je ještě hezčí umístit čísla každého jména do pole, takže na váš list nebudou umístěna žádná čísla. Pro ilustraci jsme se však rozhodli umístit hodnoty na list.