/ / Poredaj brojeve u programu Excel VBA

Sortirajte brojeve u programu Excel VBA

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

Situacija:

Primjer sortiranja brojeva

Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

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

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

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

Set rng = Range("A1").CurrentRegion

3. Pokrećemo dvije For Next petlje.

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

Objašnjenje: rng.Count jednako 9, tako da prve dvije linije koda smanjuju na Za i = 1 do 9 i za j = i + 1 do 9. Za i = 1, j = 2, 3, ..., 8 i 9 su provjereni.

4. Da biste brojeve ispravno razvrstali, usporedili smo prvi broj s sljedećim brojem. Ako je sljedeći broj manji, zamijenit ćemo brojeve. Dodajte sljedeću izjavu Ako je tada.

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

End If

Ako je gore navedena izjava istinita, mijenjamo brojeve.

Na primjer: za i = 1 i j = 2, uspoređuju se brojevi 2 i 10. Navedena izjava nije istinita. Dakle, nema potrebe za zamjenom brojeva. Excel VBA povećava j za 1 i ponavlja linije koda za i = 1 i j = 3. Jednostavno možete vidjeti da je 5 veći od 2, tako da još uvijek nema potrebe za zamjenom brojeva. Dobivamo isti rezultat za j = 4, j = 5 i j = 6. Kad stignemo na j = 7, gornja izjava vrijedi jer je 1 manja od 2.

5. Zamijenimo brojeve. Privremeno pohranjujemo jedan broj na temp, tako da Excel VBA može ispravno mijenjati brojeve. Dodajte sljedeće retke kodova u If izjavi.

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

6. Zatvorimo drugi Za sljedeću petlju (Izvan izjave If).

Next j

Za i = 1 i j = 7, Excel VBA zamijenio jebrojevi. To znači da dobijemo 1 na prvom položaju i 2 u položaju 7. Sada kada imamo 1 na prvom položaju, usporedit ćemo ovu vrijednost sa 5 (za j = 8) i 4 (za j = 9). Nema potrebe za zamjenom brojeva (1 je najmanji broj). Ovako Excel VBA dobiva (za i = 1) najmanji broj na prvoj poziciji. Da biste dobili drugi najmanji broj na drugom mjestu, Excel VBA ponavlja točno iste korake za i = 2. Da biste dobili treći najmanji broj na trećem mjestu, Excel VBA ponavlja točno iste korake za i = 3 itd.

7. Zatvorite prvu za sljedeću petlju (izvan izjave If).

Next i

8. Testirajte svoj program.

Proizlaziti:

Sortirajte brojeve u programu Excel VBA

Također pročitajte: