Skaičių rūšiavimas „Excel VBA“ - paprastos „Excel“ makrokomandos

Turinys

Žemiau apžvelgsime programą Excel VBA kad rūšiuoja skaičius.

Situacija:

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

1. Pirma, deklaruojame tris Integer tipo kintamuosius ir vieną Range objektą.

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

2. Mes inicijuojame Range objektą rng su skaičiais A stulpelyje. Tam naudojame savybę CurrentRegion. „CurrentRegion“ yra naudinga, kai iš anksto nežinome tikslių diapazono ribų (norime, kad ši programa veiktų 9, bet ir 90 skaičių).

Nustatykite rng = Diapazonas ("A1"). Dabartinė sritis

3. Mes pradedame dvi „For Next“ kilpas.

Jei i = 1 iki rng. Skaičiuoti
Jei j = i + 1 iki rng. Skaičiuoti

Paaiškinimas: rng. Skaičius lygus 9, todėl pirmosios dvi kodo eilutės sumažėja iki For .

4. Norėdami tinkamai surūšiuoti skaičius, palyginame pirmąjį skaičių su kitu. Jei kitas skaičius yra mažesnis, mes keičiame skaičius. Pridėkite šį teiginį „Jei tada“.

Jei rng.Ląstelės (j) <rng.Ląstelės (i) Tada
Pabaiga Jei

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

Pavyzdžiui: kai i = 1 ir j = 2, skaičiai 2 ir 10 lyginami. Aukščiau pateiktas teiginys nėra tiesa. Taigi nereikia keistis skaičiais. „Excel VBA“ padidina j 1 ir kartoja kodo eilutes, kai i = 1 ir j = 3. Galite lengvai pamatyti, kad 5 yra didesnis nei 2, todėl vis tiek nereikia keisti skaičių. Mes gauname tą patį rezultatą, kai j = 4, j = 5 ir j = 6. Kai pasiekiame j = 7, aukščiau pateiktas teiginys yra teisingas, nes 1 yra mažesnis už 2.

5. Mes keičiame skaičius. Vieną numerį laikinai laikome laikinoje temperatūroje, kad „Excel VBA“ galėtų tinkamai sukeisti numerius. Prie sakinio „If“ pridėkite šias kodo eilutes.

'apsikeisti skaičiais
temp = rng. Ląstelės (i)
rng. Ląstelės (i) = rng. Ląstelės (j)
rng. Ląstelės (j) = temp

6. Uždarome antrąją „For Next“ kilpą (už teiginio „If“).

Kitas j

Jei i = 1 ir j = 7, „Excel VBA“ pakeitė skaičius. Tai reiškia, kad mes gauname 1 pirmoje pozicijoje ir 2 - 7 pozicijoje. Dabar, kai turime 1 pirmoje pozicijoje, palyginsime šią vertę su 5 (j = 8) ir 4 (jei j = 9). Nereikia apsikeisti skaičiais (1 yra mažiausias skaičius). Tokiu būdu „Excel VBA“ gauna (jei i = 1) mažiausią skaičių pirmoje vietoje. Norėdami gauti antrą mažiausią skaičių antroje pozicijoje, „Excel VBA“ pakartoja tuos pačius veiksmus, kai i = 2. Kad trečiasis mažiausias skaičius būtų trečias, „Excel VBA“ kartoja tuos pačius veiksmus, kai i = 3 ir tt

7. Uždarykite pirmąją „For Next“ kilpą (už teiginio „If“ ribų).

Kitas I.

8. Išbandykite savo programą.

Rezultatas:

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave