Tento tutoriál předvede, jak třídit hodnoty v poli ve VBA
Třídění jednorozměrného pole pomocí smyčky
Třídění pole vyžaduje trochu manipulace s daty pomocí smyček, proměnných a dočasných polí.
- Nejprve musíte pole naplnit svými hodnotami
- Potom musíte dvakrát projít polem! Jednou získáte hodnotu z aktuálního pole prvků a zatímco jste stále v této smyčce, získáte hodnotu dalšího prvku v poli.
- Poté musíte prvky porovnat - a přesunout 2. do polohy prvního, pokud je 2. abecedně PŘED 1..
Níže uvedený příklad ukazuje tento postup.
1234567891011121314151617181920212223 | Sub SortAnArray ()Dim i As Long"Nastavte pole."Dim strName () jako variantaDim Temp As Variant'naplnit polestrName () = Pole („Bob Smith“, „John Davies“, „Fred Jones“, „Steve Jenkins“, „Bob Williams“)'smyčkou přes hranici arry a získejte křestní jménoFor i = LBound (strName) To UBound (strName) - 1'opakujte smyčku a zkontrolujte, zda je další jméno abecedně před nebo za originálemPro j = i + 1 do UBound (strName)Pokud UCase (strName (i))> UCase (strName (j)) Then'pokud je třeba název přesunout před předchozí název, přidejte do dočasného pole.'Teplota = strName (j)“prohodit jménastrName (j) = strName (i)strName (i) = teplotaKonec IfDalší jPříště já'Výstup pole pomocí pole se zprávou.'Připojení MsgBox (strName (), vbCrLf)End Sub |
Pokud spustíte tento postup, zobrazí se následující okno se zprávou.
Pole můžete také řadit v opačném směru - např .: Z na A změnou tohoto řádku kódu
1 | Pokud UCase (strName (i))> UCase (strName (j)) Then |
na tento řádek kódu
1 | Pokud UCase (strName (i)) <UCase (strName (j)) Then |
Zobrazí se následující okno se zprávou.