Allpool vaatame programmi Exceli VBA seda sorteerib andmeid juhuslikult (selles näites sorteerib nimed juhuslikult).
Olukord:
1. Esiteks deklareerime neli muutujat. Ühte muutujatüüpi String nimetame TempStringiks, ühte Integer tüüpi muutujaks nimetame TempIntegeriks, ühte Integer tüüpi muutujaks nimetame i ja ühte Integer tüüpi muutujaks nimetame j.
Dim tempString kui string, tempInteger täisarvuna, i täisarvuna, j täisarvuna
2. Kirjutame veergu B 5 juhuslikku numbrit (üks iga nime kohta). Selleks kasutame töölehe funktsiooni RandBetween.
I = 1 kuni 5
Lahtrid (i, 2) .Väärtus = TöölehtFunktsioon.RandBetween (0, 1000)
Edasi i
Senine tulemus:
Kasutame nimede sortimiseks iga nime kõrval olevaid numbreid. Nimi, millel on kõigepealt kõige väiksem arv, teisel kohal madalam number, teine jne.
3. Alustame Double Loop.
I = 1 kuni 5
Kui j = i + 1 kuni 5
4. Lisage järgmine koodirida:
Kui Lahtrid (j, 2) .Väärtus <Lahtrid (i, 2) .Väärtus Siis
Näide: kui i = 1 ja j = 2, võrreldakse Wendyt ja Richardit. Kuna Richardil on väiksem arv, vahetame Wendy ja Richardi. Richard on praegu esimesel positsioonil. Kui i = 1 ja j = 3, võrreldakse Richardit ja Joosti. Joostil on suurem arv, nii et midagi ei juhtu. Nii saab Excel VBA esimesel kohal madalaima numbriga nime. Kui i = 2, saab Excel VBA teise koha madalaima numbriga nime jne.
5. Kui see on tõsi, vahetame nimed.
tempString = Lahtrid (i, 1). Väärtus
Lahtrid (i, 1). Väärtus = lahtrid (j, 1). Väärtus
Lahtrid (j, 1) .Väärtus = tempString
6. Ja me vahetame numbreid.
tempInteger = Lahtrid (i, 2). Väärtus
Lahtrid (i, 2). Väärtus = lahtrid (j, 2). Väärtus
Lahtrid (j, 2). Väärtus = tempInteger
7. Ärge unustage If -lauset sulgeda.
Lõpp Kui
8. Ärge unustage kahe silmuse sulgemist.
Järgmine j
Edasi i
9. Testige programmi.
Tulemus:
Märkus: saate lisada rea, mis kustutab veerus B olevad numbrid. Veelgi parem on paigutada iga nime numbrid massiivi, nii et teie töölehele numbreid ei paigutata. Kuid näitlikustamiseks oleme valinud väärtuste paigutamise lehele.