/ / Losowe sortowanie danych w Excel VBA

Losowo sortuj dane w Excel VBA

Poniżej przyjrzymy się programowi w Excel VBA że losowo sortuje dane (w tym przykładzie losowo sortuje nazwy).

Sytuacja:

Losowo sortuj dane w Excel VBA

1. Najpierw deklarujemy cztery zmienne. Jedną zmienną typu String nazywamy TempString, jedną zmienną typu Integer nazywamy TempInteger, jedną zmienną typu Integer nazywamy i i jedną zmienną typu Integer nazywamy j.

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

2. Piszemy 5 liczb losowych do kolumny B (po jednym dla każdej nazwy). Używamy do tego funkcji arkusza kalkulacyjnego RandBetween.

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

Wynik do tej pory:

Wynik do tej pory

Będziemy używać numerów obok każdej nazwy, aby posortować nazwiska. Najpierw nazwisko o najniższym numerze, imię z drugim najniższym numerem, drugie itd.

3. Rozpoczynamy podwójną pętlę.

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

4. Dodaj następującą linię kodu:

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

Przykład: dla i = 1 i j = 2, Wendy i Richard są porównywane. Ponieważ Richard ma niższą liczbę, zamieniamy Wendy i Richarda. Richard jest teraz na pierwszym miejscu. Dla i = 1 i j = 3 porównuje się Richard i Joost. Joost ma wyższą liczbę, więc nic się nie dzieje. W ten sposób Excel VBA otrzymuje nazwę o najniższym numerze na pierwszej pozycji. W przypadku i = 2 Excel VBA otrzymuje nazwę z drugą najniższą liczbą na drugiej pozycji itd.

5. Jeśli to prawda, zamieniamy imiona.

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

6. I zamieniamy liczby.

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

7. Nie zapomnij zamknąć instrukcji If.

End If

8. Nie zapomnij zamknąć dwóch pętli.

    Next j
Next i

9. Sprawdź program.

Wynik:

Losowo Sortuj wyniki danych

Uwaga: możesz dodać linię, która usuwa liczby w kolumnie B. Jeszcze ładniej jest umieścić numery każdej nazwy w tablicy, więc w arkuszu kalkulacyjnym nie umieszczamy żadnych liczb, jednak w celach ilustracyjnych wartości na arkuszu.

Przeczytaj również: