Flest forritunarmál styðja fylki, þar á meðal VBA. An array er hópur af breytum sem deila nafn. Þú vísar til ákveðinnar breytu í fylkinu með því að nota fylkisheitið og vísitölu innan sviga. Til dæmis er hægt að skilgreina fylki af 12 strengjabreytum til að geyma nöfn mánaða ársins. Ef þú nefnir fylkið MonthNames , geturðu vísað til fyrsta þáttar fylkisins sem MonthNames (1), seinni þáttarins sem MonthNames (2) og svo framvegis.
Lýsa fylki
Áður en þú getur notað fylki verður þú að lýsa því yfir. Engar undantekningar. Ólíkt venjulegum breytum, er VBA mjög strangur varðandi þessa reglu. Þú lýsir yfir fylki með Dim eða Public yfirlýsingu, alveg eins og þú lýsir yfir venjulegri breytu. Hins vegar þarftu líka að tilgreina fjölda þátta í fylkinu. Þú gerir þetta með því að tilgreina fyrstu vísitöluna, lykilorðið To og síðustu vísitöluna - allt innan sviga. Eftirfarandi dæmi sýnir hvernig á að lýsa yfir fylki með 100 heiltölum:
Dimma MyArray(1 Til 100) Sem heiltala
Þegar þú lýsir yfir fylki geturðu valið að tilgreina aðeins efri vísitöluna. Ef þú sleppir neðri vísitölunni, gerir VBA ráð fyrir að hún sé 0. Þess vegna lýsa báðar eftirfarandi fullyrðingar yfir sama 101-þáttar fylki:
Dimma MyArray (0 Til 100) Sem heiltala
Dimma MyArray (100) Sem heiltala
Ef þú vilt að VBA geri ráð fyrir að 1 (frekar en 0) sé lægri vísitalan fyrir fylkin þín skaltu setja eftirfarandi fullyrðingu með í Yfirlýsingar hlutanum efst á einingunni þinni:
Valkostagrunnur 1
Þessi setning neyðir VBA til að nota 1 sem fyrstu vísitölu fyrir fylki sem lýsa aðeins yfir efri vísitölunni. Ef þessi fullyrðing er til staðar eru eftirfarandi fullyrðingar eins, báðar lýsa yfir 100-eininga fylki:
Dimma MyArray (1 Til 100) Sem heiltala
Dimma MyArray (100) Sem heiltala
Fjölvíddar fylki
Fylkin sem voru búin til í fyrri dæmunum eru öll einvídd fylki. Hugsaðu um einvíddar fylki sem eina gildislínu. Fylki sem þú býrð til í VBA geta haft allt að 60 víddir - þó þú þurfir sjaldan fleiri en tvær eða þrjár víddir í fylki. Eftirfarandi dæmi lýsir yfir 81 heiltölu fylki með tveimur víddum:
Dimma MyArray (1 til 9, 1 til 9) sem heiltala
Þú getur hugsað þér að þetta fylki taki upp 9 x 9 fylki - fullkomið til að geyma allar tölur í Sudoku þraut.
Til að vísa til ákveðins þáttar í þessu fylki þarftu að tilgreina tvær vísitölur (svipað og "röð" þess og "dálkur" í fylkinu). Eftirfarandi dæmi sýnir hvernig þú getur úthlutað gildi til staks í þessu fylki:
MyArray (3, 4)= 125
Þessi setning gefur gildi til eins staks í fylkinu. Ef þú ert að hugsa um fylkið í skilmálar af 9 x 9 fylki, þá úthlutar þetta 125 til frumefnisins sem staðsett er í þriðju röð og fjórða dálki fylkisins.
Svona á að lýsa yfir þrívíddarfylki, með 1.000 þáttum:
Dimma My3DArray (1 til 10, 1 til 10, 1 til 10) sem heiltala
Þú getur hugsað um þrívíddarfylki sem tening. Það er erfiðara að sjá fyrir sér fjölda fleiri en þriggja vídda.
Dynamic fylki
Þú getur líka búið til kraftmikla fylki. Kvik fylki hefur ekki forstilltan fjölda þátta. Lýstu yfir kraftmiklu fylki með tómu setti af sviga:
Dimma MyArray () Sem heiltala
Áður en þú getur notað þetta fylki verður þú að nota ReDim yfirlýsinguna til að segja VBA hversu marga þætti fylkið hefur. Venjulega er fjöldi þátta í fylkinu ákvarðaður á meðan kóðinn þinn er í gangi. Þú getur notað ReDim yfirlýsinguna hvaða oft sem er og breytt stærð fylkisins eins oft og þörf krefur. Eftirfarandi dæmi sýnir hvernig á að breyta fjölda þátta í kraftmiklu fylki. Það gerir ráð fyrir að NumElements breytan innihaldi gildi sem kóðinn þinn reiknaði út.
ReDim MyArray (1 To NumElements)
Þegar þú endurvíddar fylki með því að nota ReDim, þurrkarðu út öll gildi sem eru geymd í fylkisþáttunum. Þú getur forðast að eyðileggja gömlu gildin með því að nota Preserve lykilorðið. Eftirfarandi dæmi sýnir hvernig þú getur varðveitt gildi fylkis þegar þú endurvíddar fylkið:
ReDim Preserve MyArray (1 To NumElements)
Ef MyArray hefur tíu þætti eins og er, og þú framkvæmir fyrri setninguna með NumElements sem jafngildir 12, haldast fyrstu tíu þættirnir ósnortnir og fylkið hefur pláss fyrir tvo þætti til viðbótar (allt að fjöldanum sem er í breytunni NumElements). Ef NumElements er hins vegar jafnt og 7, haldast fyrstu sjö frumefnin en hinir þrír þættirnir falla frá.