Ta vadnica bo pokazala, kako razvrstiti vrednosti v nizu v VBA
Razvrščanje enodimenzionalnega niza z uporabo zanke
Razvrščanje matrike zahteva nekaj manipulacij s podatki z uporabo zank, spremenljivk in začasnih nizov.
- Najprej morate matriko napolniti s svojimi vrednostmi
- Nato morate dvakrat prečkati matriko! Enkrat, da dobimo vrednost iz trenutnega niza elementov, medtem ko smo še v tej zanki, da dobimo vrednost naslednjega elementa v matriki.
- Nato morate elemente primerjati - in drugega premakniti v položaj prvega, če je drugi po abecedi PRED 1..
Spodnji primer prikazuje ta postopek.
1234567891011121314151617181920212223 | Sub SortAnArray ()Dim i As Long'Nastavi matrikoZatemni strName () kot variantoDim Temp kot varianta'napolni matrikostrName () = Array ("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")'prepeljite mejo arryja in dobite imeZa i = LBound (strName) do UBound (strName) - 1'ponovno preglejte in preverite, ali je naslednje ime po abecedi pred ali za izvirnikomZa j = i + 1 do UBound (strName)Če UCase (strName (i))> UCase (strName (j)) Potem'če je treba ime premakniti pred prejšnjim imenom, ga dodajte v matriko tempTemp = strName (j)'zamenjaj imenastrName (j) = strName (i)strName (i) = TempKonec ČeNaprej jNaprej i'Iznesite matriko skozi polje s sporočilomPridruži se MsgBox (strName (), vbCrLf)End Sub |
Če zaženete ta postopek, boste dobili naslednje polje s sporočilom.
Niz lahko razvrstite tudi v drugo smer - na primer: od Z do A, tako da spremenite to vrstico kode
1 | Če UCase (strName (i))> UCase (strName (j)) Potem |
v to vrstico kode
1 | Če je UCase (strName (i)) <UCase (strName (j)) Potem |
Nato boste dobili naslednje polje za sporočila.