Matrice de obiecte VBA

Cuprins

Acest tutorial va demonstra cum să creați și să utilizați matrici de obiecte în VBA.

În VBA, matricile sunt variabile care stochează valori multiple. Puteți stoca obiecte VBA în tablouri în același mod în care ați stoca orice alte date.

Declararea matricei de obiecte

În acest exemplu, vom declara o serie de foi de lucru VBA:

1 Dim arWks (3) Ca foaie de lucru

Popularea unui tablou de obiecte statice

Declarați că matricea de obiecte este statică și apoi puteți completa matricea cu foile pe care le selectați din registrul de lucru.

12345678 Sub TestObjArray ()'definiți matricea ca matrice de foaie de lucruDim arWks (1 - 3) ca foaie de lucru'adăugați 3 coli în matriceset arWks (1) = Foi (1)set arWks (2) = Foi (2)Set arWks (3) = Foi (3)Sfârșitul Sub

Popularea unui tablou de obiecte dinamice

Puteți declara matricea obiectelor ca fiind dinamică și apoi să numărați foile din registrul de lucru înainte de a atribui dimensiunea matricei matricei de obiecte.

1234567891011121314 Sub TestObjArray ()'definiți matricea ca matrice de foaie de lucruDim arWks () Ca foaie de lucru'numărați câte foi de lucru din fișier și redimensionați matriceaDim n Ca întregDim i Integer'numărați foile și minus una pentru a seta limitele pentru matricen = Application.Sheets.Count - 1ReDim arWks (n)'completați matricea de foi de lucru cu toate foile din registrul de lucruPentru i = LBound (arWks) la UBound (arWks)Set arWks (i) = ActiveWorkbook.Sheets (i + 1)Apoi euSfârșitul Sub

În exemplul de mai sus, declarăm mai întâi matricea de foaie de lucru. Apoi numărăm numărul de foi din registrul de lucru și atribuim acea valoare minus una la UBound a matricei. Acest lucru se datorează faptului că LBound-ul matricei începe ca 0. În cele din urmă, facem o buclă prin foi și adăugăm fiecare foaie la matrice.

Utilizarea matricei de obiecte în codul VBA

Odată ce am populat matricea Foaie de lucru, putem folosi VBA pentru a parcurge matricea.

123456789101112131415161718 Sub TestObjArray ()'definiți matricea ca matrice de foaie de lucruDim arWks () Ca foaie de lucru'numărați câte foi de lucru din fișier și redimensionați matriceaDim n Ca întregDim i Integer'numărați foile și minus una pentru a seta limitele pentru matricen = Application.Sheets.Count - 1ReDim arWks (n)'completați matricea de foi de lucru cu toate foile din registrul de lucruPentru i = LBound (arWks) la UBound (arWks)Set arWks (i) = ActiveWorkbook.Sheets (i + 1)Apoi eu'faceți ceva pentru fiecare foaie din matricePentru i = LBound (arWks) la UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueApoi euSfârșitul Sub

În exemplul de mai sus, facem o buclă prin matrice și Bold primul rând al fiecărei foi din matrice.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave