Lajittele numerot Excel VBA: ssa - Easy Excel -makrot

Sisällysluettelo

Alla tarkastelemme ohjelmaa Excel VBA että lajittelee numerot.

Tilanne:

Aseta komentopainike laskentataulukkoosi ja lisää seuraavat koodirivit:

1. Ilmoitamme ensin kolme Integer -tyyppistä muuttujaa ja yhden Range -objektin.

Dim i kokonaislukuna, j kokonaislukuna, lämpötila kokonaislukuna, rng as Range

2. Alustamme Range -objektin rng sarakkeen A numeroilla. Käytämme tähän CurrentRegion -ominaisuutta. CurrentRegion on hyödyllinen, kun emme tiedä alueen tarkkoja rajoja etukäteen (haluamme, että tämä ohjelma toimii yhdeksälle numerolle, mutta myös 90 numerolle).

Aseta rng = Alue ("A1"). Nykyinen alue

3. Aloitamme kaksi For Next -silmukkaa.

Jos i = 1 rng.lask
Jos j = i + 1 rng.lask

Selitys: rng. Luku on 9, joten kaksi ensimmäistä koodiriviä pienenevät arvoon For i = 1 - 9 ja j = i + 1 - 9. Jos i = 1, j = 2, 3,…, 8 ja 9 tarkistetaan .

4. Jos haluat lajitella numerot oikein, vertaamme ensimmäistä numeroa seuraavaan numeroon. Jos seuraava numero on pienempi, vaihdamme numerot. Lisää seuraava Jos sitten -lauseke.

Jos rng.Solut (j) <rng.Solut (i) Sitten
Loppu Jos

Jos yllä oleva väite pitää paikkansa, vaihdamme numerot.

Esimerkiksi: jos i = 1 ja j = 2, numeroita 2 ja 10 verrataan. Yllä oleva väite ei pidä paikkaansa. Ei siis tarvitse vaihtaa numeroita. Excel VBA lisää j: tä 1: llä ja toistaa koodirivit i = 1 ja j = 3. Voit helposti nähdä, että 5 on suurempi kuin 2, joten numeroita ei silti tarvitse vaihtaa. Saamme saman tuloksen arvoille j = 4, j = 5 ja j = 6. Kun saavutamme arvon j = 7, yllä oleva lausunto pitää paikkansa, koska 1 on pienempi kuin 2.

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

'vaihtaa numeroita
lämpötila = rng. solut (i)
rng. solut (i) = rng. solut (j)
rng. solut (j) = lämpötila

6. Suljemme toisen For Next -silmukan (If -lauseen ulkopuolella).

Seuraava j

Jos i = 1 ja j = 7, Excel VBA vaihtoi numerot. Tämä tarkoittaa, että saamme 1 ensimmäisellä sijainnilla ja 2 asemalla 7. Nyt kun meillä on 1 ensimmäisellä sijainnilla, vertaamme tätä arvoa arvoihin 5 (j = 8) ja 4 (j = 9). Numeroita ei tarvitse vaihtaa (1 on pienin luku). Näin Excel VBA saa (i = 1) pienimmän numeron ensimmäisessä paikassa. Saadakseen toiseksi pienimmän numeron toisesta paikasta Excel VBA toistaa täsmälleen samat vaiheet i = 2: lle. Kolmannen pienimmän luvun saamiseksi kolmannesta paikasta Excel VBA toistaa täsmälleen samat vaiheet i = 3 jne.

7. Sulje ensimmäinen For Next -silmukka (If -lauseen ulkopuolella).

Seuraavaksi minä

8. Testaa ohjelmasi.

Tulos:

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave