/ / Willekeurig gegevens sorteren in Excel VBA

Willekeurig gegevens sorteren in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA dat willekeurig gegevens sorteert (in dit voorbeeld worden namen willekeurig gesorteerd).

Situatie:

Willekeurig gegevens sorteren in Excel VBA

1. Eerst verklaren we vier variabelen. Een variabele van het type String die we TempString noemen, een variabele van het type Integer die we TempInteger noemen, een variabele van het type Integer die we i noemen, en een variabele van het type Integer die we j noemen.

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

2. We schrijven 5 willekeurige getallen naar kolom B (één voor elke naam). Hiervoor gebruiken we de werkbladfunctie RandBetween.

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

Resultaat tot nu toe:

Resultaat tot nu toe

We gebruiken de nummers naast elke naam om de namen te sorteren. De naam met het laagste nummer eerst, de naam met het op één na laagste nummer, de tweede, etc.

3. We starten een dubbele lus.

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

4. Voeg de volgende coderegel toe:

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

Voorbeeld: voor i = 1 en j = 2 worden Wendy en Richard vergeleken. Omdat Richard een lager aantal heeft, ruilen we Wendy en Richard. Richard staat nu op de eerste positie. Voor i = 1 en j = 3 worden Richard en Joost vergeleken. Joost heeft een hoger nummer, dus er gebeurt niets. Op deze manier krijgt Excel VBA de naam met het laagste nummer op de eerste positie. Voor i = 2 krijgt Excel VBA de naam met het op een na laagste nummer op de tweede positie, enz.

5. Als dit waar is, wisselen we de namen om.

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

6. En we wisselen de cijfers.

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

7. Vergeet niet de If-verklaring te sluiten.

End If

8. Vergeet niet om de twee lussen te sluiten.

    Next j
Next i

9. Test het programma.

Resultaat:

Willekeurig gegevensresultat sorteren

Notitie: je kunt een regel toevoegen die de nummers in kolom B verwijdert. Het is zelfs leuker om de getallen van elke naam in een array te plaatsen, dus geen getallen worden op je werkblad geplaatst, maar voor illustratieve doeleinden hebben we ervoor gekozen om de waarden op het blad.

Lees ook: