Ovaj će vodič pokazati kako sortirati vrijednosti u nizu u VBA -i
Sortiranje jednodimenzionalnog niza pomoću petlje
Sortiranje niza zahtijeva malo manipulacije podacima pomoću petlji, varijabli i privremenih polja.
- Prvo morate popuniti niz svojim vrijednostima
- Zatim morate dvaput proći kroz niz! Jednom da biste dobili vrijednost iz trenutnog niza elemenata, a dok je još u toj petlji, da biste dobili vrijednost sljedećeg elementa u nizu.
- Zatim morate usporediti elemente - i pomaknuti drugi na položaj prvog ako je drugi abecednim redom PRIJE prvog.
Primjer u nastavku prikazuje ovaj postupak.
1234567891011121314151617181920212223 | Podrazvrstani niz ()Dim i As Long'Postavite nizDim strName () Kao varijantaDim Temp kao varijanta'popunite nizstrName () = Array ("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")'prođite kroz granicu arryja i dobijte imeZa i = LBound (strName) Za UBound (strName) - 1'ponovno prođite i provjerite je li sljedeće ime abecedno prije ili iza originalaZa j = i + 1 prema UBound (strName)Ako UCase (strName (i))> UCase (strName (j)) Zatim'ako je potrebno premjestiti naziv ispred prethodnog imena, dodajte ga u privremeni nizTemp = strName (j)'zamijeni imenastrName (j) = strName (i)strName (i) = TempZavrši akoSljedeće jSljedeći i'Iznesite niz kroz okvir s porukomMsgBox Pridruživanje (strName (), vbCrLf)Kraj podm |
Ako pokrenete ovaj postupak, dobit ćete sljedeći okvir s porukom.
Niz možete sortirati i u drugom smjeru - npr. Od Z do A promjenom ove linije koda
1 | Ako UCase (strName (i))> UCase (strName (j)) Zatim |
u ovaj red koda
1 | Ako je UCase (strName (i)) <UCase (strName (j)) Tada |
Tada ćete dobiti sljedeći okvir s porukom.