Zoradenie čísel v programe Excel VBA - ľahké makrá programu Excel

Obsah

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

Situácia:

Na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúce riadky kódu:

1. Najprv deklarujeme tri premenné typu Integer a jeden objekt 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. Na to použijeme vlastnosť CurrentRegion. CurrentRegion je užitočný, ak vopred nepoznáme presné hranice rozsahu (chceme, aby tento program fungoval pre 9 čísel, ale aj pre 90 čísel).

Nastaviť rng = rozsah ("A1"). CurrentRegion

3. Začíname dve slučky For Next.

Pre i = 1 To rng.Count
Pre j = i + 1 až rng.Count

Vysvetlenie: rng.Count sa rovná 9, takže prvé dva riadky kódu sa zmenšia na For i = 1 až 9 a For j = i + 1 až 9. Pre i = 1, j = 2, 3, …, 8 a 9 sú začiarknuté .

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

Ak rng.Cells (j) <rng.Cells (i) Potom
Koniec Ak

Ak je vyššie uvedené tvrdenie pravdivé, čísla si vymeníme.

Napríklad: pre i = 1 a j = 2 sa porovnávajú čísla 2 a 10. Vyššie uvedené tvrdenie nie je pravdivé. Preto nie je potrebné čísla vymieňať. Excel VBA zvyšuje j o 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 čísla nie je potrebné prehodiť. Rovnaký výsledok dostaneme pre j = 4, j = 5 a j = 6. Keď dospejeme k j = 7, vyššie uvedené tvrdenie je pravdivé, pretože 1 je menšie ako 2.

5. Vymeníme si čísla. Dočasne uložíme jedno číslo na dočasnú teplotu, aby Excel VBA mohol čísla správne zameniť. Do príkazu If pridajte nasledujúce riadky kódu.

'vymeniť čísla
temp = rng.Cells (i)
rng.Cells (i) = rng.Cells (j)
rng.Cells (j) = teplota

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

Ďalej j

Pre i = 1 a j = 7 Excel VBA čísla vymenil. To znamená, že dostaneme 1 na prvej pozícii a 2 na pozícii 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é prehodiť čísla (1 je najmenšie číslo). Excel VBA tak získa (pre i = 1) najmenšie číslo na prvej pozícii. Ak chcete získať druhé najmenšie číslo na druhej pozícii, Excel VBA opakuje presne tie isté kroky pre i = 2. Ak chcete získať tretie najmenšie číslo na tretej pozícii, Excel VBA zopakuje presne tie isté kroky pre i = 3 atď.

7. Zatvorte prvú slučku For Next (Mimo príkaz If).

Ďalej i

8. Otestujte si svoj program.

Výsledok:

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave