Sorteerige numbrid Excel VBA - lihtsad Exceli makrod

Lang L: none (table-of-contents)

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:

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave