Matrice VBA Excel: Tipuri și cum se utilizează cu exemplu

⚡ Rezumat inteligent

Tablourile VBA din Excel stochează un grup de valori corelate de același tip de date sub un singur nume, accesat printr-un index. Această pagină explică tablourile statice și dinamice, tablourile unidimensionale, bidimensionale și multidimensionale, sintaxa de declarare și un exemplu practic de încărcare a băuturilor.

  • 📦 Conceptul de matrice: O singură locație de memorie denumită care conține mai multe valori de același tip de date, separate printr-un index.
  • 🎯 avantaje: Tablourile grupează date corelate, reduc numărul de variabile și facilitează regăsirea și sortarea datelor.
  • 📌 Matrice statică: Declarat cu o dimensiune fixă, de exemplu Dim ArrayMonth(12) As String, când numărul de elemente este cunoscut.
  • 🔄 Matrice dinamică: Declarat gol cu ​​Dim ArrayMonth() și dimensionat ulterior folosind ReDim când numărul de elemente este necunoscut.
  • 📐 dimensiuni: O matrice utilizează unul, doi sau mai mulți indexuri pentru a modela liste individuale, tabele sau date pe mai multe niveluri.
  • 🧪 Exemplu lucrat: Un buton de comandă încarcă patru nume de băuturi dintr-o matrice în celulele foii de calcul folosind Sheet1.Cells.

Excel VBA Arrays

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?

Înainte de a scrie cod de tip matrice, este util să înțelegeți de ce merită să utilizați matricele. Următoarele sunt câteva dintre beneficiile oferite de funcția 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ă

După ce știi ce tip se potrivește datelor tale, următorul pas este sintaxa de declarare pentru fiecare.

Sintaxă pentru a declara matrice

Matrice statice

Sintaxa pentru declarare STATIC matrice este după cum urmează:

Dim arrayName (n) as datatype

AICI,

Code 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,

Code 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

Odată ce teoria este acoperită, putem folosi un array într-un registru de lucru real. Vom crea o aplicație simplă. Această aplicație populează o foaie Excel cu date dintr-o variabilă array. În acest exemplu VBA Array, 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,

Code 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

Cu codul configurat, pasul final este să rulați butonul și să confirmați că matricea umple foaia. Selectați fila dezvoltator și asigurați-vă că butonul Mod proiectare este „dezactivat”. Indicatorul este că va avea un fundal alb și nu un fundal colorat (verzui). (Vedeți 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 fișierul Excel de mai sus Code

Întrebări frecvente

Un tablou static are o dimensiune fixă ​​setată la declarare, cum ar fi Dim Arr(12). Un tablou dinamic este declarat gol cu ​​Dim Arr() și redimensionat ulterior folosind ReDim atunci când numărul de elemente nu este cunoscut în avans.

ReDim setează sau modifică dimensiunea unui tablou dinamic după ce este declarat. Adăugarea cuvântului cheie Preserve, ca în ReDim Preserve Arr(10), păstrează valorile existente în timpul redimensionării; fără Preserve, toate valorile stocate sunt șterse.

Folosiți funcțiile LBound și UBound. LBound returnează indexul cel mai mic, iar UBound returnează indexul cel mai mare. Numărul de elemente este egal cu UBound(Arr) minus LBound(Arr) plus unu, ceea ce funcționează atât pentru tablourile statice, cât și pentru cele dinamice.

Da. Asistenții de inteligență artificială, cum ar fi Copilot, generează declarații de matrice și bucle dintr-o cerere simplă, de exemplu, încarcă zece nume de produse într-o coloană. Dezvoltatorul lipește codul în editor și îl testează pe o copie a registrului de lucru.

Da. Asistenții inteligenți artificiali citesc eroarea „Indice în afara intervalului” și codul, apoi indică indexul care depășește limitele matricei și sugerează o soluție, cum ar fi ajustarea dimensiunii ReDim sau a contorului de buclă. Dezvoltatorul aplică și testează din nou.

Rezumați această postare cu: