Pole řazení VBA

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.

wave wave wave wave wave