Tento tutoriál ukáže, ako triediť hodnoty v poli vo VBA
Triedenie jednorozmerného poľa pomocou slučky
Triedenie poľa si vyžaduje trochu manipulácie s údajmi pomocou slučiek, premenných a dočasných polí.
- Najprv musíte pole vyplniť svojimi hodnotami
- Potom sa musíte dvakrát prejsť v poli! Akonáhle získate hodnotu z aktuálneho poľa prvkov, a keď ste ešte v tejto slučke, získate hodnotu ďalšieho prvku v poli.
- Potom musíte prvky porovnať - a presunúť ten druhý na pozíciu prvého, ak je druhý abecedne PRED prvým.
Nasledujúci príklad ukazuje tento postup.
1234567891011121314151617181920212223 | Sub SortAnArray ()Dim i As Long„Nastavte poleDim strName () ako variantDim Temp As Variant“naplňte polestrName () = Pole („Bob Smith“, „John Davies“, „Fred Jones“, „Steve Jenkins“, „Bob Williams“)Prejdite cez hranicu poľa a získajte krstné menoPre i = LBound (strName) Na UBound (strName) - 1'znova prejdite a skontrolujte, či je nasledujúci názov abecedne pred alebo za pôvodnýmPre j = i + 1 do UBound (strName)Ak UCase (strName (i))> UCase (strName (j)) Potom„ak je potrebné názov presunúť pred predchádzajúci názov, pridajte ho do dočasného poľaTeplota = strName (j)“prehodiť menástrName (j) = strName (i)strName (i) = teplotaKoniec AkĎalej jĎalej i'Výstup poľa cez pole so správouPripojenie MsgBox (strName (), vbCrLf)Koniec pod |
Ak spustíte tento postup, zobrazí sa nasledujúce okno so správou.
Pole môžete zoradiť aj iným smerom - napr .: Z až A zmenou tohto riadka kódu
1 | Ak UCase (strName (i))> UCase (strName (j)) Potom |
na tento riadok kódu
1 | Ak UCase (strName (i)) <UCase (strName (j)) Potom |
Potom sa zobrazí nasledujúce okno so správou.