/ / Rūšiuoti numeriai Excel VBA

Rūšiuoti numerius Excel VBA

Žemiau apžvelgsime programą Excel VBA tai rūšiuoja numerius.

Padėtis:

Rūšiuoti skaičių pavyzdį

Įdėkite komandų mygtuką į savo darbalapį ir pridėkite šias kodo eilutes:

1. Pirma, deklaruojame tris kintamuosius tipo "sveikasis" ir "vieno intervalo" objektus.

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

2. Mes inicializuojame "Range object rng" su A stulpeliais esančiais skaičiais. Šiuo atveju naudojamas "CurrentRegion" nuosavybė. CurrentRegion yra naudinga, kai iš anksto nežinome tikslios diapazono ribos (norime, kad ši programa veiktų 9 skaitmenų, bet ir 90 skaičių).

Set rng = Range("A1").CurrentRegion

3. Pradedame du "Next" kilpos.

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

Paaiškinimas: rng.Count lygus 9, taigi pirmosios dvi kodo eilutės sumažina į I = 1 - 9 ir For j = i + 1 - 9. Jei i = 1, j = 2, 3, ..., 8 ir 9 yra tikrinami.

4. Tinkamai rūšiuodami numerius, mes palyginame pirmąjį numerį su kitu skaičiumi. Jei kitas numeris yra mažesnis, mes keičiame numerius. Įrašykite tokį teiginį If Then.

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

End If

Jei aukščiau pateiktas teiginys yra teisingas, mes keičiame numerius.

Pavyzdžiui: jei i = 1 ir j = 2, skaičiai 2 ir 10 yra lyginami. Aukščiau pateiktas teiginys nėra teisingas. Taigi, nereikia keistis numeriais. Excel VBA didina j iki 1 ir pakartoja kodo eilutes i = 1 ir j = 3. Jūs galite lengvai pamatyti, kad 5 yra didesnis nei 2, todėl nereikia keisti numerių. Mes gauname tą patį rezultatą už j = 4, j = 5 ir j = 6. Kai atvyksime į j = 7, aukščiau pateiktas teiginys yra teisingas, nes 1 yra mažesnis nei 2.

5. Mes keisime numerius. Mes laikinai saugome vieną numerį laikui, kad "Excel VBA" galėtų tinkamai pakeisti numerius. Įrašykite šias kodo eilutes.

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

6. Mes uždarome antrąją eilutę "Kita kilpa" (už "If statement").

Next j

Jei i = 1 ir j = 7, "Excel VBA" pakeitėnumeriai. Tai reiškia, kad pirmoje pozicijoje 1 ir 2 pozicijoje 7. Dabar, kai pirmoje pozicijoje mes turime 1, palyginsime šią vertę su 5 (j = 8) ir 4 (jei j = 9). Nereikia keisti numerių (1 yra mažiausias skaičius). Tokiu būdu "Excel VBA" gauna (jei i = 1) mažiausias skaičius pirmoje pozicijoje. Norėdami gauti antrą mažiausią skaičių antrame pozicijoje, Excel VBA pakartoja tuos pačius žingsnius, kai i = 2. Norėdami gauti trečią mažiausią numerį trečioje pozicijoje, Excel VBA kartoja tame pačiame žingsnyje, kai i = 3 ir tt

7. Uždarykite pirmąją eilutę "Kita kilpa" ("Išskyrus").

Next i

8. Patikrinkite savo programą.

Rezultatas:

Rūšiuoti numerius Excel VBA

Taip pat perskaitykite: