/ / Lajittele numerot Excel VBA: ssa

Lajittele numerot Excel VBA: ssa

Alla tarkastelemme ohjelmaa Excel VBA että lajittelee numerot.

Tilanne:

Lajittele numerot Esimerkki

Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

1. Ensin mainitsemme kolme muuttujaa tyyppiä Integer ja yksi Range-objekti.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2. Aloitamme Range-objektin rng sarakkeiden A numerot. Käytämme CurrentRegion-ominaisuutta tähän. CurrentRegion on hyödyllinen, kun emme tiedä etukäteen rajan tarkkoja rajoja (haluamme, että tämä ohjelma toimii 9 numeroa, mutta myös 90 numeroa varten).

Set rng = Range("A1").CurrentRegion

3. Aloitamme kaksi Seuraava-silmukoille.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

Selitys: rng.Count on yhtä kuin 9, joten kaksi ensimmäistä koodiriviä vähenevät arvoille For i = 1-9 ja For j = i + 1-9. I = 1, j = 2, 3, ..., 8 ja 9 tarkistetaan.

4. Voit lajitella numerot oikein vertaamalla ensimmäistä numeroa seuraavaan numeroon. Jos seuraava numero on pienempi, vaihdamme numerot. Lisää seuraava If Then -lausunto.

If rng.Cells(j) < rng.Cells(i) Then

End If

Jos yllä oleva lausunto on totta, vaihdamme numerot.

Esimerkiksi: i = 1 ja j = 2, verrataan numeroita 2 ja 10. Edellä oleva lausunto ei ole totta. Siksi ei tarvitse vaihtaa numeroita. Excel VBA nousee j kerrallaan 1 ja toistaa koodin rivit i = 1 ja j = 3. Voit helposti nähdä, että 5 on suurempi kuin 2, joten silti ei tarvitse vaihtaa numeroita. Saamme saman tuloksen j = 4, j = 5 ja j = 6. Kun saavutamme j = 7, yllä oleva lauseke on totta, koska 1 on pienempi kuin 2.

5. Vaihdamme numeroita. Tallennamme väliaikaisesti yhden numeron lämpötilaan, jotta Excel VBA voi vaihtaa numerot oikein. Lisää If-lausekkeeseen seuraavat koodiluokat.

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. Suljemme toisen Next-silmukan (Out-lausekkeen ulkopuolella).

Next j

I = 1 ja j = 7, Excel VBA vaihtoinumeroita. Tämä tarkoittaa, että saamme 1 ensimmäisessä sijainnissa ja 2 asemassa 7. Nyt, kun meillä on 1 ensimmäisessä sijainnissa, vertaamme tätä arvoa 5 (j = 8) ja 4 (j = 9). Numerojen vaihtaminen ei ole tarpeen (1 on pienin luku). Tällä tavalla Excel VBA saa (i = 1) pienimmän numeron ensimmäiselle sijainnille. Jotta saisimme toisen pienimmän numeron toisessa asennossa, Excel VBA toistaa täsmälleen samat vaiheet i = 2: lle. Kolmannen pienimmän kolmannen sijainnin saamiseksi Excel VBA toistaa täsmälleen samat vaiheet i = 3: lle jne.

7. Sulje ensimmäinen Seuraava-silmukka (Out-lausekkeen ulkopuolella).

Next i

8. Testaa ohjelma.

Tulos:

Lajittele numerot Excel VBA: ssa

Lue myös: