Mai jos vom analiza un program în Excel VBA acea sortează aleatoriu datele (în acest exemplu sortează aleatoriu numele).
Situatie:
1. În primul rând, declarăm patru variabile. O variabilă de tip String o numim TempString, o variabilă de tip Integer o numim TempInteger, o variabilă de tip Integer o numim i și o variabilă de tip Integer o numim j.
Nici unultempStringLa fel de Şir, tempIntegerLa fel de Întreg, iLa fel de Întreg, jLa fel de Întreg2. Scriem 5 numere aleatorii în coloana B (unul pentru fiecare nume). Pentru aceasta folosim funcția de foaie de lucru RandBetween.
Pentrui = 1La5
Celule (i, 2) .Value = WorksheetFunction.RandBetween (0, 1000)
Următoruleu
Rezultatul de până acum:
Excel numără valori unice cu mai multe criterii
Vom folosi numerele de lângă fiecare nume pentru a sorta numele. Numele cu cel mai mic număr primul, numele cu al doilea număr cel mai mic, al doilea etc.
3. Începem un Buclă dublă .
cum se adaugă o lună la o dată în ExcelPentrui = 1La5
Pentruj = i + 1La5
4. Adăugați următoarea linie de cod:
DacăCelule (j, 2). ValoareExemplu: pentru i = 1 și j = 2, se compară Wendy și Richard. Deoarece Richard are un număr mai mic, îi schimbăm pe Wendy și Richard. Richard se află acum pe prima poziție. Pentru i = 1 și j = 3, se compară Richard și Joost. Joost are un număr mai mare, așa că nu se întâmplă nimic. În acest fel, Excel VBA primește numele cu cel mai mic număr în prima poziție. Pentru i = 2, Excel VBA primește numele cu al doilea număr cel mai mic la a doua poziție etc.
5. Dacă este adevărat, noi swap numele.
tempString = Celule (i, 1). ValoareCelule (i, 1). Valoare = Celule (j, 1). Valoare
Celule (j, 1) .Value = tempString
6. Și schimbăm numerele.
tempInteger = Celule (i, 2). ValoareCelule (i, 2). Valoare = Celule (j, 2). Valoare
Celule (j, 2) .Value = tempInteger
7. Nu uitați să închideți declarația If.
Sfârșit Dacă8. Nu uitați să închideți cele două bucle.
UrmătoruljUrmătoruleu
9. Testați programul.
ce eroare veți primi dacă tastați incorect un nume de funcție?
Rezultat:
Notă: puteți adăuga o linie care șterge numerele din coloana B. Este chiar mai plăcut să plasați numerele fiecărui nume într-o matrice, deci nu sunt plasate numere pe foaia de lucru. Cu toate acestea, în scop ilustrativ, am ales să plasăm valorile pe foaie.
Accesați capitolul următor: Erori macro