Sortirajte brojeve u programu Excel VBA
U nastavku ćemo pogledati program u Excel VBA da razvrstava brojeve.
Situacija:
Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:
1. Prvo, izjavljujemo tri varijable tipa Integer i jedan objekt 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).
3. Pokrećemo dvije For Next petlje.
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.
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.
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp
6. Zatvorimo drugi Za sljedeću petlju (Izvan izjave If).
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).
8. Testirajte svoj program.
Proizlaziti: