Tutorial pe Excel matrice VBA în Visual Basic pentru aplicații

Matricele în Visual Basic pentru aplicații - structurile care stochează în mod normal, un set de variabile interdependente de același tip. Accesul la înregistrările de matrice este realizată prin indicele lor numerică.

De exemplu, o echipă de 20 de persoane ale căror nume pe care doriți să salvați pentru o utilizare ulterioară în codul VBA. S-ar putea să declare pur și simplu 20 de variabile pentru a stoca fiecare nume, cum ar fi acest lucru:

Dar puteți utiliza un mod mult mai simplu și organizat - să păstreze o listă cu numele membrilor echipei într-o serie de 20 de variabile de tipul String:

Linia de matrice prezentată mai sus, ne-am declarat. Acum putem scrie o valoare pentru fiecare dintre elementele sale, astfel:

Un avantaj suplimentar de stocare a datelor în matrice, în comparație cu utilizarea de variabile separate, devine evident atunci când este necesar pentru a efectua aceeași operație pe fiecare element al șirului. În cazul în care numele membrilor echipei au fost depozitate în 20 de variabile distincte, ar fi necesar de fiecare dată pentru a scrie 20 de linii de cod pentru a efectua aceeași acțiune cu fiecare dintre ele. Cu toate acestea, în cazul în care numele sunt stocate în matrice, apoi efectuați acțiunea dorită cu fiecare dintre ele puteți cu un ciclu simplu.

Cum funcționează acest lucru este demonstrat de mai jos, cu referire la codul care afișează numele fiecărui membru al echipei în secvența în celula O coloana de foaie de lucru activă Excel.

Evident, lucrul cu o matrice în care 20 de nume salvate, mult mai puțin greoaie și mai precise, decât utilizarea de 20 de variabile individuale. Și dacă aceste nume nu sunt 20, și 1000? Și dacă, în plus, este necesară pentru a menține un nume și patronimic separat. Este clar că, în curând devine destul de imposibil de a face față volumului de date din codul VBA fără ajutorul unei matrice.

Matricele multidimensionali în Excel Visual Basic

matricele Visual Basic, care au fost discutate mai sus, considerate a fi o singură dimensiune. Acest lucru înseamnă că se păstrează o simplă listă de nume. Cu toate acestea, matricele pot avea o multitudine de măsurători. De exemplu, o matrice bidimensională de valori pot fi comparate cu o plasă.

Cu toate acestea, dacă nu specificați un indice de pornire pentru cele două dimensiuni ale matrice și numesc așa:

atunci această înregistrare va fi privit ca o matrice bidimensională, prima dimensiune a care conține 32 de elemente cu indici de la 0 la 31, iar a doua dimensiune a șirului conține 6 elemente cu indici de la 0 la 5.

matrice dinamice

Toate matrice din exemplele de mai sus au un număr fix de măsurători. Cu toate acestea, în multe cazuri, noi nu știm dinainte ce dimensiune ar trebui să fie oferta noastră. Puteți ieși din situația prin care anunță o gamă foarte mare, dimensiunea care va fi cu siguranță mai mult decât suficient pentru problema noastră. Dar acest lucru ar necesita o mulțime de memorie suplimentară și poate încetini programul. Există o soluție mai bună. Putem folosi o gamă dinamică - este o astfel de matrice, dintre care dimensiunea poate fi setat și a schimbat de multe ori în timpul executării macro.

Un tablou dinamic este declarat cu paranteze goale, astfel:

În continuare, trebuie să declare o serie de măsurare în procesul de executare de cod, folosind expresii ReDim:

Și dacă în timpul executării codului nevoie pentru a schimba dimensiunea matrice din nou, puteți utiliza expresia ReDim din nou:

Trebuie avut în vedere faptul că modificarea dimensiunii matrice dinamice în acest mod va avea ca rezultat pierderea tuturor valorilor stocate în matrice. În scopul de a păstra datele care există deja în matrice, trebuie să utilizați cuvântul cheie Păstrare. așa cum se arată mai jos:

Din păcate, Păstrare cuvântul cheie poate fi utilizat numai pentru a schimba limita superioară a șirului de măsurare. Limita mai joasă de matrice, astfel încât să nu se poate schimba. În plus, în cazul în care matrice are mai mult de o dimensiune, apoi, folosind cuvântul cheie Păstrare. puteți redimensiona doar ultima dimensiune matrice.