Excel VBA Arrays: Ce este, cum se utilizează și tipuri de matrice în VBA
Ce este VBA Array?
O matrice este definită ca o locație de memorie capabilă să stocheze mai mult de o valoare. Valorile trebuie să fie toate de același tip de date. Să presupunem că doriți să stocați o listă cu băuturile preferate într-o singură variabilă, puteți utiliza matricea VBA pentru a face asta.
Folosind o matrice, vă puteți referi la valorile asociate cu același nume. Puteți folosi un index sau un indice pentru a le deosebi. Valorile individuale sunt denumite elemente ale matricei Excel VBA. Ele sunt învecinate de la indicele 0 până la cea mai mare valoare a indicelui.
Acest tutorial presupune că utilizați Microsoft Excel versiunea 2013. Cunoștințele încă se aplică altor versiuni ale Microsoft Excel de asemenea.
Care sunt avantajele matricelor?
Următoarele sunt câteva dintre beneficiile oferite de funcția de matrice VBA
- Grupați datele legate logic împreună – să presupunem că doriți să stocați o listă de studenți. Puteți utiliza o singură variabilă matrice care are locații separate pentru categoriile de elevi, adică grădiniță, primar, secundar, liceu etc.
- Matricele facilitează scrierea codului care poate fi întreținut. Pentru aceleași date legate logic, vă permite să definiți o singură variabilă, în loc să definiți mai mult de o variabilă.
- Performanță mai bună – odată ce o matrice a fost definită, este mai rapid să recuperați, sortați și modificați datele.
Tipuri de matrice în VBA
VBA acceptă două tipuri de matrice și anume;
- Static – Aceste tipuri de matrice au un număr fix predeterminat de elemente care pot fi stocate. Nu se poate modifica dimensiunea tipului de date al unui tablou static. Acestea sunt utile atunci când doriți să lucrați cu entități cunoscute, cum ar fi numărul de zile dintr-o săptămână, sexul etc.De exemplu: Dim ArrayMonth(12) As String
- Dinamic – Aceste tipuri de matrice nu au un număr fix predeterminat de elemente care pot fi stocate. Acestea sunt utile atunci când lucrați cu entități pentru care nu puteți predetermina numărul.De exemplu: Dim ArrayMonth() ca variantă
Sintaxă pentru a declara matrice
Matrice statice
Sintaxa pentru declarare STATIC matrice este după cum urmează:
Dim arrayName (n) as datatype
AICI,
Cod | Acțiune |
---|---|
Dim arrayName (n) tip de date |
|
Tablouri dinamice
Sintaxa pentru declarare DINAMIC matrice este după cum urmează:
Dim arrayName() as datatype ReDim arrayName(4)
AICI,
Cod | Acțiune |
---|---|
Dim tipul de date arrayName (). |
|
ReDim arrayName(4) |
|
Dimensiuni matrice
O matrice poate fi o dimensiune, două dimensiuni sau multidimensională.
- O singură dimensiune: În această dimensiune, matricea utilizează un singur index. De exemplu, un număr de oameni de fiecare vârstă.
- Două dimensiuni: În această dimensiune, matricea folosește doi indici. De exemplu, un număr de elevi în fiecare clasă. Necesită numărul de clase și numărul de elevi în fiecare clasă
- Multi-dimensiune: În această dimensiune, matricea folosește mai mult de doi indecși. De exemplu, temperaturile în timpul zilei. ( 30, 40, 20).
Cum se utilizează Array în Excel VBA
Vom crea o aplicație simplă. Această aplicație populează o foaie Excel cu date dintr-o variabilă matrice. În acest exemplu de matrice VBA, vom face următoarele lucruri.
- Creaza un nou Microsoft Registrul de lucru Excel și salvați-l ca registru de lucru cu macrocomandă Excel (*.xlsm)
- Adăugați un buton de comandă la registrul de lucru
- Setați proprietățile numelui și legendei butonului de comandă
- Programarea VBA care populează foaia Excel
Să facem acest exercițiu pas cu pas,
Pasul 1 - Creați un nou registru de lucru
- Operatii Deschise Microsoft Excel
- Salvați noul registru de lucru ca VBA Arrays.xlsm
Pasul 2 - Adăugați un buton de comandă
Notă: Această secțiune presupune că sunteți familiarizat cu procesul de creare a unei interfețe în Excel. Dacă nu sunteți familiarizat, citiți tutorialul Controlul formularelor VBA Excel și controlul ActiveX. Vă va arăta cum să creați interfața
- Adăugați un buton de comandă la foaie
- Setați proprietatea nume la cmdLoadBeverages
- Setați proprietatea subtitrării la Încărcare băuturi
GUI-ul dvs. ar trebui să fie acum după cum urmează
Pasul 3 - Salvați fișierul
- Faceți clic pe butonul Salvare ca
- Alegeți Excel Macro-Enabled Workbook (*.xlsm) așa cum se arată în imaginea de mai jos
Pasul 4 – Scrieți codul
Acum vom scrie codul aplicației noastre
- Faceți clic dreapta pe butonul Încărcare băuturi și selectați codul de vizualizare
- Adăugați următorul cod la evenimentul de clic al cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
AICI,
Cod | Acțiune |
---|---|
Dim Drinks (1 - 4) ca șir |
|
Băuturi (1) = „Pepsi” |
|
Sheet1.Cells(1, 1).Value = „Băuturile mele preferate”. |
|
Fișa1.Celele(2, 1).Valoare = Băuturi(1) |
|
Testarea aplicației noastre
Selectați fila dezvoltator și asigurați-vă că butonul pentru modul Design este „dezactivat”. Indicatorul este că va avea un fundal alb și nu un fundal colorat (verzui). (Vezi imaginea de mai jos)
Faceți clic pe butonul Încărcare băuturi
Veți obține următoarele rezultate
Descărcați Excel care conține codul de mai sus
Descărcați codul Excel de mai sus
Rezumat
- O matrice este o variabilă capabilă să stocheze mai multe valori
- Excel VBA acceptă matrice statice și dinamice
- Matricele facilitează scrierea codului care poate fi întreținut în comparație cu declararea multor variabile pentru date care sunt legate logic.