Tilfeldig sorter data i Excel VBA - Enkle Excel -makroer

Innholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA at tilfeldig sorterer data (i dette eksemplet sorterer navn tilfeldig).

Situasjon:

1. For det første erklærer vi fire variabler. En variabel av typen String kaller vi TempString, en variabel av typen Heltall kaller vi TempInteger, en variabel av typen Heltall vi kaller i, og en variabel av typen Heltall vi kaller j.

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

2. Vi skriver 5 tilfeldige tall til kolonne B (ett for hvert navn). Vi bruker regnearkfunksjonen RandBetween for dette.

For i = 1 til 5
Celler (i, 2) .Value = WorksheetFunction.RandBetween (0, 1000)
Neste jeg

Resultat så langt:

Vi vil bruke tallene ved siden av hvert navn for å sortere navnene. Navnet med det laveste tallet først, navnet med det nest laveste tallet, andre, etc.

3. Vi starter en Double Loop.

For i = 1 til 5
For j = i + 1 til 5

4. Legg til følgende kodelinje:

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

Eksempel: for i = 1 og j = 2, blir Wendy og Richard sammenlignet. Fordi Richard har et lavere tall, bytter vi Wendy og Richard. Richard er i første posisjon nå. For i = 1 og j = 3 sammenlignes Richard og Joost. Joost har et høyere tall, så ingenting skjer. På denne måten får Excel VBA navnet med det laveste tallet i første posisjon. For i = 2 får Excel VBA navnet med det nest laveste tallet på den andre posisjonen, etc.

5. Hvis det er sant, bytter vi navn.

tempString = Celler (i, 1) .Value
Celler (i, 1) .Value = Celler (j, 1) .Værdi
Celler (j, 1) .Value = tempString

6. Og vi bytter tall.

tempInteger = Celler (i, 2). Verdi
Celler (i, 2) .Value = Celler (j, 2) .Værdi
Celler (j, 2) .Value = tempInteger

7. Ikke glem å lukke If -setningen.

Slutt om

8. Ikke glem å lukke de to løkkene.

 Neste j
Neste jeg

9. Test programmet.

Resultat:

Merk: du kan legge til en linje som sletter tallene i kolonne B. Det er enda hyggeligere å plassere tallene til hvert navn i en matrise, så ingen tall plasseres i regnearket. For illustrasjonsformål har vi imidlertid valgt å plassere verdiene på arket.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave