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

  1. 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.
  2. 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ă.
  3. 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
  1. Acesta declară o variabilă matrice numită arrayName cu dimensiunea n și tipul de date. Dimensiunea se referă la numărul de elemente pe care matricea le poate stoca.

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 ().
  1. Declară o variabilă matrice numită arrayName fără a specifica numărul de elemente
ReDim arrayName(4)
  1. Specifică dimensiunea matricei după ce matricea a fost definită.

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

  1. Operatii Deschise Microsoft Excel
  2. 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

  1. Adăugați un buton de comandă la foaie

Utilizați Array în Excel VBA

  1. Setați proprietatea nume la cmdLoadBeverages
  2. Setați proprietatea subtitrării la Încărcare băuturi

GUI-ul dvs. ar trebui să fie acum după cum urmează

Utilizați Array în Excel VBA

Pasul 3 - Salvați fișierul

  1. Faceți clic pe butonul Salvare ca
  2. Alegeți Excel Macro-Enabled Workbook (*.xlsm) așa cum se arată în imaginea de mai jos

Utilizați Array în Excel VBA

Pasul 4 – Scrieți codul

Acum vom scrie codul aplicației noastre

  1. Faceți clic dreapta pe butonul Încărcare băuturi și selectați codul de vizualizare
  2. 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
  • Declara o variabilă matrice numită Drinks. Primul index de matrice este 1, iar ultimul indice de matrice este 4.
Băuturi (1) = „Pepsi”
  • Atribuie valoarea Pepsi primului element de matrice. Celălalt cod similar face același lucru pentru celelalte elemente din matrice.
Sheet1.Cells(1, 1).Value = „Băuturile mele preferate”.
  • Scrie valoarea Băuturile mele preferate în adresa celulei A1. Sheet1 face referire la foaie, iar Cells(1,1) face referire la rândul numărul 1 și coloana 1 (B)
Fișa1.Celele(2, 1).Valoare = Băuturi(1)
  • Scrie valoarea elementului de matrice cu indicele 1 pe rândul numărul doi al coloanei 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)

Testarea unei aplicații în Excel VBA

Faceți clic pe butonul Încărcare băuturi

Veți obține următoarele rezultate

Testarea unei aplicații în Excel VBA

Descărcați Excel care conține codul de mai sus

Descărcați codul Excel de mai sus

Rezumat

  1. O matrice este o variabilă capabilă să stocheze mai multe valori
  2. Excel VBA acceptă matrice statice și dinamice
  3. Matricele facilitează scrierea codului care poate fi întreținut în comparație cu declararea multor variabile pentru date care sunt legate logic.