/ / Kārtot numurus programmā Excel VBA

Kārtot numurus programmā Excel VBA

Tālāk mēs apskatīsim programmu programmā Excel VBA ka šķiro numurus.

Situācija:

Kārtot numurus piemērs

Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

1. Vispirms mēs deklarējam trīs mainīgā lieluma tipu Integer un vienu diapazonu objektu.

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

2 Mēs inicializējam Range object rng ar skaitļiem A slejā. Mēs to izmantojam CurrentRegion īpašumam. CurrentRegion ir noderīga, ja iepriekš precīzi nezina precīzas robežas (mēs vēlamies, lai šī programma darbotos 9 cipariem, bet arī 90 skaitļiem).

Set rng = Range("A1").CurrentRegion

3. Mēs sākam divus Next cilpas.

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

Paskaidrojums: rng.Count ir vienāds ar 9, tādēļ pirmās divas koda līnijas samazina līdz i = 1 līdz 9 un For j = i + 1 līdz 9. Ja i = 1, j = 2, 3, ..., 8 un 9 tiek pārbaudīti.

4. Lai kārtīgi sakārtotu ciparus, salīdzinām pirmo numuru ar nākamo numuru. Ja nākamais skaitlis ir mazāks, mēs apmainām numurus. Pievienojiet tālāk norādīto If Then paziņojumu.

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

End If

Ja iepriekš minētais apgalvojums ir taisnība, mēs nomainām numurus.

Piemēram: ja i = 1 un j = 2, tiek salīdzināti skaitļi 2 un 10. Iepriekš minētais apgalvojums nav taisnība. Tādējādi nav nepieciešams mainīt ciparus. Excel VBA palielina j ar 1 un atkārto koda līnijas i = 1 un j = 3. Jūs varat viegli redzēt, ka 5 ir lielāks par 2, tāpēc joprojām nav nepieciešams mainīt numurus. Mēs iegūstam to pašu rezultātu par j = 4, j = 5 un j = 6. Kad mēs nonākam pie j = 7, iepriekšējais paziņojums ir taisnība, jo 1 ir mazāks par 2.

5. Mēs mainām numurus. Mēs īslaicīgi saglabājam vienu numuru temp, lai Excel VBA varētu pareizi mainīt ciparus. Pievienojiet šādus koda rindas paziņojumā If.

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

6. Mēs aizveram otro nākamo cilni (Ārpus paziņojuma).

Next j

Ja i = 1 un j = 7, Excel VBA mainījāscipari. Tas nozīmē, ka mēs saņemam 1 pirmajā pozīcijā un 2 pozīcijā 7. Tagad, kad pirmajā pozīcijā mums ir 1, mēs salīdzināsim šo vērtību ar 5 (ja j = 8) un 4 (ja j = 9). Nav nepieciešams mainīt ciparus (1 ir mazākais skaitlis). Tādā veidā Excel VBA iegūst (ja i ​​= 1) mazāko skaitli pirmajā pozīcijā. Lai iegūtu otru mazāko skaitli otrajā pozīcijā, Excel VBA atkārto tieši tādas pašas darbības i = 2. Lai iegūtu trešo mazāko skaitli trešajā pozīcijā, Excel VBA atkārto tieši tādas pašas darbības i = 3, utt.

7. Aizveriet pirmo sadaļu Nākamā cilne (Ārpus paziņojuma).

Next i

8. Pārbaudi savu programmu.

Rezultāts:

Kārtot numurus programmā Excel VBA

Lasīt arī: