Sortiranje brojeva u Excelu VBA - Jednostavni makroni Excel

Sadržaj

U nastavku ćemo pogledati program u Excel VBA da sortira brojeve.

Situacija:

Postavite naredbeni gumb na radni list i dodajte sljedeće retke koda:

1. Prvo, deklariramo tri varijable tipa Integer i jedan Range objekt.

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

2. Inicijaliziramo objekt Range rng s brojevima u stupcu A. Za to koristimo svojstvo CurrentRegion. CurrentRegion je koristan ako unaprijed ne znamo točne granice raspona (želimo da ovaj program radi za 9 brojeva, ali i za 90 brojeva).

Postavite rng = Raspon ("A1"). CurrentRegion

3. Pokrećemo dvije petlje For Next.

Za i = 1 Za rng.Count
Za j = i + 1 Za rng.Prebroji

Objašnjenje: rng.Count je jednak 9, pa se prve dvije kodne retke svode na For i = 1 do 9 i For j = i + 1 do 9. Za i = 1 provjerava se j = 2, 3,…, 8 i 9 .

4. Za pravilno razvrstavanje brojeva uspoređujemo prvi broj sa sljedećim. Ako je sljedeći broj manji, mijenjamo brojeve. Dodajte sljedeću naredbu If Then.

Ako je rng.Cells (j) <rng.Cells (i) Tada
Završi ako

Ako je gornja tvrdnja točna, mijenjamo brojeve.

Na primjer: za i = 1 i j = 2 uspoređuju se brojevi 2 i 10. Gornja tvrdnja nije točna. Dakle, nema potrebe mijenjati brojeve. Excel VBA povećava j za 1 i ponavlja linije koda za i = 1 i j = 3. Lako možete vidjeti da je 5 veće od 2, pa još uvijek nema potrebe mijenjati brojeve. Dobivamo isti rezultat za j = 4, j = 5 i j = 6. Kada dođemo do j = 7, gornja tvrdnja je točna budući da je 1 manje od 2.

5. Mijenjamo brojeve. Privremeno spremamo jedan broj na temp, tako da Excel VBA može ispravno zamijeniti brojeve. Dodajte sljedeće kodne retke u naredbu If.

'zamijeniti brojeve
temp = rng. Ćelije (i)
rng.Cells (i) = rng.Cells (j)
rng.Želije (j) = temp

6. Zatvaramo drugu petlju For Next (Izvan naredbe If).

Sljedeće j

Za i = 1 i j = 7, Excel VBA je zamijenio brojeve. To znači da dobivamo 1 na prvom mjestu i 2 na položaju 7. Sada kada imamo 1 na prvom mjestu, usporedit ćemo ovu vrijednost s 5 (za j = 8) i 4 (za j = 9). Nema potrebe mijenjati brojeve (1 je najmanji broj). Na taj način Excel VBA dobiva (za i = 1) najmanji broj na prvom mjestu. Da bi dobio drugi najmanji broj na drugom mjestu, Excel VBA ponavlja potpuno iste korake za i = 2. Da bi dobio treći najmanji broj na trećem mjestu, Excel VBA ponavlja potpuno iste korake za i = 3 itd.

7. Zatvorite prvu petlju For Next (Izvan naredbe If).

Sljedeći i

8. Testirajte svoj program.

Proizlaziti:

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave