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: