/ / Sortarea în mod aleatoriu a datelor în Excel VBA

Alegerea în mod aleatoriu a datelor în Excel VBA

Mai jos ne vom uita la un program în Excel VBA acea sortează în mod aleatoriu datele (în acest exemplu sortează numele aleatoriu).

Situatie:

Alegerea în mod aleatoriu a datelor în Excel VBA

1. În primul rând, declarăm patru variabile. O variabilă de tipul String numim TempString, o variabilă de tip Integer numită TempInteger, o variabilă de tip Integer pe care o numim i și o variabilă de tip Integer numită j.

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

2. Vom scrie 5 cifre aleatorii în coloana B (câte una pentru fiecare nume). Folosim funcția RandBetween pentru foaia de lucru pentru aceasta.

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

Rezultatul până în prezent:

Rezultatul până acum

Vom folosi numerele de lângă fiecare nume pentru a sorta numele. Numele cu numărul cel mai mic, numele cu al doilea număr cel mai mic, al doilea, etc.

3. Începem o buclă dublă.

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

4. Adăugați următoarea linie de cod:

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

Exemplu: pentru i = 1 și j = 2, Wendy și Richard sunt comparate. Pentru că Richard are un număr mai mic, schimbăm Wendy și Richard. Richard se află în prima poziție acum. Pentru i = 1 și j = 3, Richard și Joost sunt comparate. Joost are un număr mai mare, deci nu se întâmplă nimic. În acest fel, Excel VBA obține numele cu cel mai mic număr în prima poziție. Pentru i = 2, Excel VBA obține numele cu cel de-al doilea cel mai mic număr din a doua poziție, etc.

5. Dacă este adevărat, schimbăm numele.

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

6. Și schimbăm numerele.

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

7. Nu uitați să închideți instrucțiunea If.

End If

8. Nu uitați să închideți cele două bucle.

    Next j
Next i

9. Testați programul.

Rezultat:

Alegeți în mod aleatoriu rezultatul datelor

Notă: puteți adăuga o linie care șterge cifrele din coloana B. Este chiar mai plăcut să plasați numerele fiecărui nume într-o matrice, astfel încât să nu fie plasate numere pe foaia de lucru. Cu toate acestea, pentru scopuri ilustrative am ales să plasăm valori pe foaie.

De asemenea, citiți: