/ / Tilfældigt sortere data i Excel VBA

Tilfældigt Sorter Data i Excel VBA

Nedenfor vil vi se på et program i Excel VBA at tilfældigt sorterer data (i dette eksempel sorterer tilfældigt navn).

Situation:

Tilfældigt Sorter Data i Excel VBA

1. Først erklærer vi fire variabler. En variabel af typen String vi kalder TempString, en variabel af typen Integer, vi kalder TempInteger, en variabel af typen Integer vi kalder i og en variabel af typen Integer vi kalder j.

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

2. Vi skriver 5 tilfældige tal til kolonne B (et for hvert navn). Vi bruger regnearkfunktionen RandBetween til dette.

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

Resultat hidtil:

Resultat hidtil

Vi bruger numrene ved siden af ​​hvert navn for at sortere navnene. Navnet med det laveste nummer først, navnet med det næst laveste nummer, andet osv.

3. Vi starter en Double Loop.

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

4. Tilføj følgende kode linje:

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

Eksempel: for i = 1 og j = 2 sammenlignes Wendy og Richard. Fordi Richard har et lavere antal, bytter vi Wendy og Richard. Richard er i første position nu. For i = 1 og j = 3 sammenlignes Richard og Joost. Joost har et højere antal, så der sker ingenting. På denne måde får Excel VBA navnet med det laveste nummer i den første position. For i = 2, får Excel VBA navnet med det næstbedste nummer i anden position mv.

5. Hvis det er sandt, bytter vi navnene.

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

6. Og vi bytter numrene.

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

7. Glem ikke at lukke If-sætningen.

End If

8. Glem ikke at lukke de to løkker.

    Next j
Next i

9. Test programmet.

Resultat:

Tilfældigt Sorter Data Resultat

Bemærk: Du kan tilføje en linje, der sletter tallene i kolonne B. Det er endnu pænere at placere tallene for hvert navn i et array, så der ikke er nummer på din regneark. Men for illustrative formål har vi valgt at placere værdier på arket.

Læs også: