Tilfældigt sortere data i Excel VBA - nemme Excel -makroer

Indholdsfortegnelse

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

Situation:

1. For det første erklærer vi fire variabler. En variabel af typen String kalder vi TempString, en variabel af typen Integer kalder vi TempInteger, en variabel af typen Integer kalder vi i, og en variabel af typen Integer kalder vi 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 regnearksfunktionen RandBetween til dette.

For i = 1 til 5
Celler (i, 2) .Value = WorksheetFunction.RandBetween (0, 1000)
Næste i

Resultat indtil videre:

Vi vil bruge tallene ved siden af ​​hvert navn til at sortere navnene. Navnet med det laveste tal først, navnet med det næstlaveste nummer, andet osv.

3. Vi starter en Double Loop.

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

4. Tilføj følgende kodelinje:

Hvis Celler (j, 2) .Værdi <Celler (i, 2) .Værdi Derefter

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

5. Hvis det er rigtigt, bytter vi navnene.

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

6. Og vi bytter numre.

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

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

Afslut Hvis

8. Glem ikke at lukke de to sløjfer.

 Næste j
Næste i

9. Test programmet.

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 en matrix, så der ikke placeres tal på dit regneark. Til illustrerende formål har vi imidlertid valgt at placere værdierne på arket.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave