Sortați numerele în Excel VBA - Macro Excel ușor

Cuprins

Mai jos vom analiza un program în Excel VBA acea sortează numerele.

Situatie:

Plasați un buton de comandă pe foaia de lucru și adăugați următoarele linii de cod:

1. În primul rând, declarăm trei variabile de tip Integer și un obiect Range.

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

2. Inițializăm obiectul Range rng cu numerele din coloana A. Pentru aceasta folosim proprietatea CurrentRegion. CurrentRegion este util atunci când nu cunoaștem în prealabil limitele exacte ale unui interval (vrem ca acest program să funcționeze pentru 9 numere, dar și pentru 90 de numere).

Setați rng = Range ("A1"). CurrentRegion

3. Începem două bucle For Next.

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

Explicație: rng.Count este egal cu 9, deci primele două linii de cod se reduc la For i = 1 la 9 și Pentru j = i + 1 la 9. Pentru i = 1, j = 2, 3, …, 8 și 9 sunt verificate .

4. Pentru a sorta corect numerele, comparăm primul număr cu numărul următor. Dacă următorul număr este mai mic, schimbăm numerele. Adăugați următoarea instrucțiune If Then.

Dacă rng.Cells (j) <rng.Cells (i) Atunci
End If

Dacă afirmația de mai sus este adevărată, schimbăm numerele.

De exemplu: pentru i = 1 și j = 2, numerele 2 și 10 sunt comparate. Afirmația de mai sus nu este adevărată. Astfel, nu este nevoie să schimbați numerele. Excel VBA crește j cu 1 și repetă liniile de cod pentru i = 1 și j = 3. Puteți vedea cu ușurință că 5 este mai mare decât 2, deci nu este nevoie să schimbați numerele. Obținem același rezultat pentru j = 4, j = 5 și j = 6. Când ajungem la j = 7, afirmația de mai sus este adevărată, deoarece 1 este mai mic decât 2.

5. Schimbăm numerele. Stocăm temporar un număr la temp, astfel încât Excel VBA să poată schimba numerele în mod corespunzător. Adăugați următoarele linii de cod în instrucțiunea If.

'swap numere
temp = rng.Cells (i)
rng.Cells (i) = rng.Cells (j)
rng.Cells (j) = temp

6. Închidem a doua buclă For Next (În afara instrucțiunii If).

Următorul j

Pentru i = 1 și j = 7, Excel VBA a schimbat numerele. Asta înseamnă că obținem 1 la prima poziție și 2 la poziția 7. Acum că avem 1 la prima poziție, vom compara această valoare cu 5 (pentru j = 8) și 4 (pentru j = 9). Nu este nevoie să schimbați numerele (1 este cel mai mic număr). În acest fel, Excel VBA obține (pentru i = 1) cel mai mic număr din prima poziție. Pentru a obține al doilea cel mai mic număr la a doua poziție, Excel VBA repetă exact aceiași pași pentru i = 2. Pentru a obține al treilea cel mai mic număr la a treia poziție, Excel VBA repetă exact aceiași pași pentru i = 3 etc.

7. Închideți prima buclă For Next (În afara instrucțiunii If).

Apoi eu

8. Testează-ți programul.

Rezultat:

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave