VBA -lajittelujärjestelmä

Tämä opetusohjelma osoittaa, miten arvot lajitellaan taulukossa VBA: ssa

Yksiulotteisen taulukon lajittelu silmukan avulla

Taulukon lajittelu vaatii hieman tietojen käsittelyä silmukoiden, muuttujien ja väliaikaisten matriisien avulla.

  • Sinun on ensin täytettävä taulukko arvoillasi
  • Sitten sinun on kierrettävä taulukko kahdesti! Kerran, kun haluat saada arvon nykyiseltä elementtijoukolta, ja kun olet vielä kyseisessä silmukassa, saadaksesi taulukon seuraavan elementin arvon.
  • Sitten sinun on vertailtava elementtejä - ja siirrettävä toinen ensimmäiseen kohtaan, jos toinen on aakkosjärjestyksessä ENNEN ensimmäistä.

Alla oleva esimerkki osoittaa tämän menettelyn.

1234567891011121314151617181920212223 AlalajitteluAnArray ()Dim niin kauan'Aseta taulukkoDim strName () VarianttinaDim Temp Varianttina'täytä taulukkostrName () = Array ("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")'silmukan läpi arry sidottu ja saada etunimiSillä i = LBound (strName) - UBound (strName) - 1'silmukka uudelleen ja tarkista, onko seuraava nimi aakkosjärjestyksessä ennen alkuperäistä vai sen jälkeenJos j = i + 1 UBoundiin (strName)Jos UCase (strName (i))> UCase (strName (j)) Sitten'Jos nimi on siirrettävä edellisen nimen eteen, lisää se väliaikaiseen taulukkoonLämpötila = strName (j)'vaihda nimetstrName (j) = strName (i)strName (i) = LämpötilaLoppu JosSeuraava jSeuraavaksi minä'Tulosta Array viestiruudun kauttaMsgBox Join (strName (), vbCrLf)End Sub

Jos suoritat tämän menettelyn, saat seuraavan viestiruudun.

Voit myös lajitella taulukon toiseen suuntaan - esim. Z - A muuttamalla tätä koodiriviä

1 Jos UCase (strName (i))> UCase (strName (j)) Sitten

tähän koodiriviin

1 Jos UCase (strName (i)) <UCase (strName (j)) Sitten

Saat sitten seuraavan viestiruudun.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave