Allpool vaatame programmi Exceli VBA seda sorteerib numbreid.
Olukord:
Asetage oma töölehele käsunupp ja lisage järgmised koodiridad:
1. Esiteks deklareerime kolm muutujat täisarvu tüüpi ja ühe vahemiku objekti.
Dim i As Integer, j As Integer, temp As Integer, rng As Range
2. Initsialiseerime Range objekti rng veerus A olevate numbritega. Selleks kasutame omadust CurrentRegion. CurrentRegion on kasulik, kui me ei tea vahemiku täpseid piire ette (tahame, et see programm töötaks 9 numbri, aga ka 90 numbri puhul).
Määra rng = Vahemik ("A1"). Praegune piirkond
3. Alustame kahte For Next silmust.
Sest i = 1 Rng.Count
Kui j = i + 1 rng. Loend
Selgitus: rng. Loendus on 9, seega vähendatakse kahte esimest koodirida väärtustele i = 1 kuni 9 ja j = i + 1 kuni 9. Kui i = 1, on j = 2, 3,…, 8 ja 9 märgitud .
4. Numbrite korrektseks sortimiseks võrdleme esimest numbrit järgmise numbriga. Kui järgmine number on väiksem, vahetame numbrid. Lisage järgmine lause Kui siis.
Kui rng. Lahtrid (j) <rng. Lahtrid (i) Siis
Lõpp Kui
Kui ülaltoodud väide vastab tõele, vahetame numbrid.
Näiteks: kui i = 1 ja j = 2, võrreldakse numbreid 2 ja 10. Ülaltoodud väide ei vasta tõele. Seega pole vaja numbreid vahetada. Excel VBA suurendab j 1 võrra ja kordab koodiridu i = 1 ja j = 3. Näete hõlpsalt, et 5 on suurem kui 2, seega pole vaja numbreid vahetada. Saame sama tulemuse j = 4, j = 5 ja j = 6. Kui jõuame väärtuseni j = 7, on ülaltoodud väide tõene, kuna 1 on väiksem kui 2.
5. Vahetame numbrid. Salvestame ajutiselt ühe numbri temp, et Excel VBA saaks numbreid korralikult vahetada. Lisage If -lausele järgmised koodiridad.
'vaheta numbrid
temp = rng. Lahtrid (i)
rng. Lahtrid (i) = rng. Lahtrid (j)
rng. Lahtrid (j) = temp
6. Sulgeme teise For For Next (väljaspool lauset If).
Järgmine j
Kui i = 1 ja j = 7, vahetas Excel VBA numbrid. See tähendab, et esimeses positsioonis saame 1 ja asendis 7 2. Nüüd, kui esimeses positsioonis on 1, võrdleme seda väärtust 5 -ga (j = 8) ja 4 -ga (j = 9). Numbreid pole vaja vahetada (1 on väikseim number). Nii saab Excel VBA (i = 1 korral) esimeses positsioonis väikseima arvu. Teise positsiooni väikseima arvu saamiseks kordab Excel VBA täpselt samu samme i = 2. Kolmanda väikseima arvu saamiseks kolmandas positsioonis kordab Excel VBA täpselt samu samme i = 3 jne korral.
7. Sulgege esimene järgmiseks silmus (väljaspool lauset If).
Edasi i
8. Testi oma programmi.
Tulemus: