Řazení čísel v aplikaci Excel VBA - snadná makra aplikace Excel

Obsah

Níže se podíváme na program v Excel VBA že třídí čísla.

Situace:

Umístěte na list příkazové tlačítko a přidejte následující řádky kódu:

1. Nejprve deklarujeme tři proměnné 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 čísly ve sloupci A. Používáme k tomu vlastnost CurrentRegion. CurrentRegion je užitečný, když předem neznáme přesné hranice rozsahu (chceme, aby tento program fungoval pro 9 čísel, ale také pro 90 čísel).

Nastavit rng = rozsah ("A1"). CurrentRegion

3. Začneme dvěma smyčkami For Next.

Pro i = 1 To rng.Count
Pro j = i + 1 do rng.Count

Vysvětlení: rng.Count se rovná 9, takže první dva řádky kódu se zmenší na Pro i = 1 až 9 a Pro j = i + 1 až 9. Pro i = 1, j = 2, 3, …, 8 a 9 jsou zaškrtnuty .

4. Abychom správně seřadili čísla, porovnáme první číslo s dalším číslem. Pokud je další číslo menší, čísla prohodíme. Přidejte následující příkaz If Then.

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

Pokud je výše uvedené tvrzení pravdivé, vyměníme čísla.

Například: pro i = 1 a j = 2 se porovnávají čísla 2 a 10. Výše uvedené tvrzení není pravdivé. Není tedy nutné čísla vyměňovat. Excel VBA zvyšuje j o 1 a opakuje řádky kódu pro i = 1 a j = 3. Můžete snadno vidět, že 5 je větší než 2, takže stále není nutné čísla prohodit. Získáme stejný výsledek pro j = 4, j = 5 a j = 6. Když dojdeme k j = 7, výše uvedené tvrzení je pravdivé, protože 1 je menší než 2.

5. Prohodíme čísla. Dočasně uložíme jedno číslo do dočasného režimu, aby Excel VBA mohl čísla řádně prohodit. Přidejte následující řádky kódu do příkazu If.

'vyměnit čísla
temp = rng.Cells (i)
rng.Cells (i) = rng.Cells (j)
rng.Cells (j) = temp

6. Zavřeme druhou smyčku For Next (Mimo příkaz If).

Další j

Pro i = 1 a j = 7 Excel VBA vyměnil čísla. To znamená, že dostaneme 1 na první pozici a 2 na pozici 7. Nyní, když máme 1 na první pozici, porovnáme tuto hodnotu s 5 (pro j = 8) a 4 (pro j = 9). Čísla není třeba prohodit (1 je nejmenší číslo). Excel VBA tak získá (pro i = 1) nejmenší číslo na první pozici. Chcete -li získat druhé nejmenší číslo na druhé pozici, Excel VBA opakuje přesně stejné kroky pro i = 2. Chcete -li získat třetí nejmenší číslo na třetí pozici, Excel VBA opakuje přesně stejné kroky pro i = 3 atd.

7. Zavřete první smyčku For Next (Mimo příkaz If).

Příště já

8. Otestujte si svůj program.

Výsledek:

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave