Vrsta razvrstitve VBA

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.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave