/ / Zoradiť čísla v programe Excel VBA

Zoradiť čísla v programe Excel VBA

Nižšie sa pozrieme na program v sekcii Excel VBA že triedi čísla.

situácie:

Príklad triedenia čísel

Do pracovného hárka umiestnite príkazové tlačidlo a pridajte nasledujúce riadky kódu:

1. Najprv vyhlasujeme tri premenné typu Integer a jedného objektu Range.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2. Inicializujeme objekt Range rng s číslami v stĺpci A. Pre toto použijeme vlastnosť CurrentRegion. CurrentRegion je užitočný vtedy, keď nepoznáme presné hranice rozsahu vopred (chceme tento program pracovať pre 9 čísel, ale aj pre 90 čísel).

Set rng = Range("A1").CurrentRegion

3. Začneme dve cykly For Next.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

Vysvetlenie: rng.Count sa rovná 9, takže prvé dve riadky kódu sa zmenšujú na For i = 1 až 9 a For j = i + 1 až 9. Pre i = 1, j = 2, 3, ..., 8 a 9 sú skontrolované.

4. Ak chcete správne zoradiť čísla, porovnáme prvé číslo s ďalším číslom. Ak je ďalšie číslo menšie, vymeníme čísla. Pridajte nasledujúci príkaz If Then.

If rng.Cells(j) < rng.Cells(i) Then

End If

Ak je uvedené tvrdenie pravdivé, vymeníme čísla.

Napríklad: pre i = 1 a j = 2 sa porovnávajú čísla 2 a 10. Vyššie uvedené vyhlásenie nie je pravdivé. Preto nie je potrebné zamieňať čísla. Excel VBA prírastok j po 1 a opakuje riadky kódu pre i = 1 a j = 3. Môžete ľahko vidieť, že 5 je väčšie ako 2, takže stále nie je potrebné zamieňať čísla. Získame rovnaký výsledok pre j = 4, j = 5 a j = 6. Keď dorazíme na j = 7, vyššie uvedené vyhlásenie je pravdivé, pretože 1 je menšie ako 2.

5. Vymeníme čísla. Dočasne uložíme jedno číslo do temp, takže Excel VBA dokáže správne vymeniť čísla. Pridajte nasledujúce riadky kódu do príkazu If.

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. Zatvoríme druhú slučku For Next (príkaz Out mimo).

Next j

Pre i = 1 a j = 7, Excel VBA vymenilČísla. To znamená, že dostaneme 1 na prvú pozíciu a 2 na pozíciu 7. Teraz, keď máme 1 na prvej pozícii, porovnáme túto hodnotu s 5 (pre j = 8) a 4 (pre j = 9). Nie je potrebné vymeniť čísla (1 je najmenšie číslo). Týmto spôsobom Excel VBA dostane (pre i = 1) najmenšie číslo na prvej pozícii. Ak chcete získať druhé najmenšie číslo na druhom mieste, program Excel VBA zopakuje presne tie isté kroky pre i = 2. Aby sa tretie najnižšie číslo dostalo na tretie miesto, Excel VBA zopakuje presne tie isté kroky pre i = 3 atď.

7. Zatvorte prvú slučku For Next (príkaz Out mimo).

Next i

8. Otestujte svoj program.

výsledok:

Zoradiť čísla v programe Excel VBA

Tiež si prečítajte: