Ta vadnica bo pokazala, kako ustvariti in uporabiti nizov predmetov v VBA.
V VBA so nizi spremenljivke, ki shranjujejo več vrednosti. Objekte VBA lahko shranite v matrike na enak način kot vse druge podatke.
Razglasitev niza objektov
V tem primeru bomo razglasili niz delovnih listov VBA:
1 | Zatemni arWks (3) kot delovni list |
Napolnite niz statičnih objektov
Objektni niz označite za statičnega, nato pa lahko matriko zapolnite z listi, ki jih izberete v svojem delovnem zvezku.
12345678 | Sub TestObjArray ()'opredelite matriko kot matriko delovnega listaZatemni arWKS (1 do 3) kot delovni list'dodajte 3 liste v matrikoset arWks (1) = Listi (1)set arWks (2) = Listi (2)Set arWks (3) = Sheets (3)End Sub |
Zapolnitev niza dinamičnih objektov
Objektni niz lahko razglasite za dinamičnega in nato preštejete liste v delovnem zvezku, preden velikost matrike dodelite matriki objektov.
1234567891011121314 | Sub TestObjArray ()'opredelite matriko kot matriko delovnega listaZatemni arWks () kot delovni list'preštejte, koliko delovnih listov je v datoteki, in matrico znova zatemniteDim n kot celo številoDim i kot celo število'štejte liste in minus ena, da nastavite meje matriken = Application.Sheets.Count - 1REDIM ARWKS (n)'napolnite polje delovnega lista z vsemi listi v delovnem zvezkuZa i = LBound (arWks) do UBound (arWks)Nastavi arWks (i) = ActiveWorkbook.Sheets (i + 1)Naprej iEnd Sub |
V zgornjem primeru najprej razglasimo niz delovnih listov. Nato štejemo število listov v delovnem zvezku in to vrednost minus eno dodelimo UBound matrike. To je posledica dejstva, da se LBound matrike začne kot 0. Nazadnje prelistamo liste in vsak list dodamo v matriko.
Uporaba matrike objektov v kodi VBA
Ko smo napolnili matriko delovnega lista, lahko z uporabo VBA prečkamo matriko.
123456789101112131415161718 | Sub TestObjArray ()'opredelite matriko kot matriko delovnega listaZatemni arWks () kot delovni list'preštejte, koliko delovnih listov je v datoteki, in matrico znova zatemniteDim n kot celo številoDim i kot celo število'štejte liste in minus ena, da nastavite meje matriken = Application.Sheets.Count - 1REDIM ARWKS (n)'napolnite polje delovnega lista z vsemi listi v delovnem zvezkuZa i = LBound (arWks) do UBound (arWks)Nastavi arWks (i) = ActiveWorkbook.Sheets (i + 1)Naprej i"naredite nekaj za vsak list v matrikiZa i = LBound (arWks) do UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueNaprej iEnd Sub |
V zgornjem primeru prečkamo matriko in krepimo prvo vrstico vsakega lista v matriki.