Az alábbiakban megnézzük a programot Excel VBA hogy számokat rendez.
Helyzet:
Helyezzen el egy parancsgombot a munkalapon, és adja hozzá a következő kódsorokat:
1. Először három Integer típusú változót és egy Range objektumot deklarálunk.
Dim i Integer, j Mint Integer, temp As Integer, rng As Range
2. Inicializáljuk a Range objektum rng -t az A oszlopban található számokkal. Ehhez a CurrentRegion tulajdonságot használjuk. A CurrentRegion akkor hasznos, ha előre nem ismerjük a tartomány pontos határait (szeretnénk, ha ez a program 9 számra, de 90 számra is működne).
Set rng = Range ("A1"). CurrentRégió
3. Két For Next hurkot kezdünk.
I = 1 -hez Rng.Szám
Ha j = i + 1 Rng.Szám
Magyarázat: rng. A szám 9, tehát az első két kódsor i .
4. A számok megfelelő rendezéséhez összehasonlítjuk az első számot a következő számmal. Ha a következő szám kisebb, cseréljük fel a számokat. Adja hozzá a következő If then utasítást.
Ha rng.Cells (j) <rng.Cells (i) Akkor
Vége Ha
Ha a fenti állítás igaz, akkor felcseréljük a számokat.
Például: i = 1 és j = 2 esetén a 2 -es és 10 -es számokat hasonlítják össze. A fenti állítás nem igaz. Így nem kell cserélni a számokat. Az Excel VBA 1 -gyel növeli a j értéket, és megismétli az i = 1 és j = 3 kódsorokat. Könnyen láthatja, hogy az 5 nagyobb, mint 2, így továbbra sem kell kicserélni a számokat. Ugyanazt az eredményt kapjuk j = 4, j = 5 és j = 6 esetén. Amikor j = 7 -re érkezünk, a fenti állítás igaz, mivel 1 kisebb, mint 2.
5. Felcseréljük a számokat. Egy számot ideiglenesen ideiglenesen tárolunk, hogy az Excel VBA megfelelően kicserélhesse a számokat. Adja hozzá a következő kódsorokat az If utasításhoz.
'cserélje ki a számokat
temp = rng. Cellák (i)
rng. Sejtek (i) = rng. Sejtek (j)
rng. Sejtek (j) = hőm
6. Bezárjuk a második For Next cikket (az If utasításon kívül).
Következő j
I = 1 és j = 7 esetén az Excel VBA felcserélte a számokat. Ez azt jelenti, hogy 1 -et kapunk az első pozícióban és 2 -t a 7. pozícióban. Most, hogy az első helyen 1 -et kapunk, összehasonlítjuk ezt az értéket 5 -vel (j = 8 esetén) és 4 -gyel (j = 9 esetén). Nincs szükség a számok felcserélésére (1 a legkisebb szám). Így az Excel VBA megkapja (i = 1 esetén) a legkisebb számot az első pozícióban. Ahhoz, hogy a második legkisebb számot kapja a második pozícióban, az Excel VBA pontosan ugyanazokat a lépéseket ismétli meg az i = 2 esetén. A harmadik legkisebb szám eléréséhez a harmadik pozícióban az Excel VBA pontosan ugyanazokat a lépéseket ismétli meg i = 3 esetén, stb.
7. Zárja be az első For Next cikket (az If utasításon kívül).
Következő i
8. Tesztelje programját.
Eredmény: