A tömbök VBA - a koncepció és a vektor dimenziójának

Array - gyűjteménye változók, amelyek a közös név és az alap típus. Minden adat elemek sohranya- proxy a tömbben kell lennie az azonos típusú. A tárolt adatok a tömbben lehet elérni bármilyen sorrendben.







Egy tömb tárolását teszi lehetővé, és manipulálni az adatok számát elemek révén egyetlen változó tartományban. Array feldolgozás nagyban egyszerűsíti a használatát ciklusban.

dimenziós tömbök

Dimenziós tömb - ez a legegyszerűbb lehetőség tömb, amely egy közönséges adatok listáját. Például: John, Peter, Nick, Mike, Ványa, Glory, Igor, Jura, Sasha, Vova egy string tömb, amely 10 elemet. Adjunk egy nevet sajat_tomb.

A számozása a tömb elemeinek indul 0. Ezt a számozási rendszert elég gyakori programozási nevezzük nulla-alapú számozás.

Tárolt adatokhoz való hozzáférés egy adott tömb elemet meg kell határozni a tömb nevét és utána egy szám, az úgynevezett index elemet. Az index mindig zárójelbe téve. Például: sajat_tomb (3) - ez az eleme a tömb a „Misha” (ne felejtsük el, hogy az alapértelmezett számozás tömb elemei 0-nál kezdődik).

Mivel a számozás a nulláról nem túl kényelmes (ahogy megszokták, hogy gondolt 1, nem 0), akkor a VBA van egy fordítóprogram irányelv, amely lehetővé teszi, hogy erősít ez „kellemetlenség”: Option Base.

többdimenziós tömbök

A statikus és a dinamikus tömböket

Tömbök, amelyek nem változtatják meg annak számos eleme, az úgynevezett statikus tömbök. Egy példa egy ilyen tömbben szolgálhat a fenti tömb sajat_tomb. tartalmazó 10 elemeket.

Vannak azonban olyan helyzetek, amikor kezdetben ismeretlen számú elem a tömbben, vagy, a folyamat változó lehet. Az ilyen tömbök úgynevezett dinamikus tömböket.

A dinamikus tömb lehet növekszik vagy csökken elhelyezésére pontosan a szükséges számú memória elemek nélkül hiába fogyasztás.

Dim varname ([Indexek]) [As Type] varname - bármely tömb neve egy érvényes azonosító neve; Indexek - dimenzió tömb. Ha a méret a tömb nagyobb, mint egy, akkor Indexek vesszővel elválasztva.

Indexek üzemeltető szintaxis a következő:

[Alsó A] felső [, [alsó To] felső]. alacsonyabb - meghatározza az alacsonyabb tartományban érvényes indexeket a tömb (opcionális); felső - meghatározza a felső határát tömb indexek (kötelező argumentum).

használata tömbök

Ahhoz, hogy a tömb elem nevét fel kell tüntetni a tömb, majd az index értéke, zárójelbe téve.

A tömbök VBA - a koncepció és a vektor dimenziójának






Segítségével beágyazott hurok lehet elhelyezni elég könnyen inicializálni egy kétdimenziós tömböt:

A tömbök VBA - a koncepció és a vektor dimenziójának

Változás dimenziója dinamikus tömb

ReDim [megőrzése] varname (alsó indexek) [As Type] [, varname (alsó indexek) [As Type]] varname - nevét egy meglévő tömb; indexek - a meglévő tömb dimenziót; Típus - bármilyen típusú VBA. Használjon külön kezelő As Type minden tömb, amelynek eltökélt; Őrizze - opcionális argumentum. Ennek használata vezet az a tény, hogy a már rendelkezésre álló adatok egy tömbben után is megmaradnak változó dimenzió.

Példák a helyes használatát ReDim nyilatkozatot. Dim Array_Month () As String - dimenziós karakterlánc dinamikusan tömb ReDim Array_Month (29) - ustanavlivet dimenziója dinamikus tömb 29 azonos elemet ReDim Array_Month (1-től 30) -, hogy módosítsa a méret a tömb elem 30 ReDim Preserve Array_Month (1 31) - módosít tömb mérete 31 elem, miközben a tartalmát Dim Array_DBL () As Single - kijelenti egy dinamikus tömb ReDim Array_DBL (2, 9), - ami egy sor kétdimenziós ReDim Array_DBL (3, 7) - átméretezi a kétdimenziós tömbben ReDim Preserve Array_DBL (1-től 3, 1 5) - megváltoztatja az utolsó a tömb méretét, miközben a tartalmát

Figyeljen! Csak akkor tudja megváltoztatni az utolsó dimenzió egy többdimenziós tömb, amikor a kulcsszó megőrzése.

Funkciók LBound, UBound

Funkciók LBound, UBound vissza az alsó és a felső határértékek indexeinek statikus vagy dinamikus tömb.

Szintaxis: LBound (array_Name [, dimenzió]) UBound (array_Name [, dimenzió]) array_Name - neve a tömb dimenzió - egy egész szám (opcionális). Meghatározza tömb dimenziót, amelyre szükség van, hogy megkapjuk egy felső vagy alsó határértéket. Ennek hiányában visszatérő korlát dimenziójáról első dimenzió a tömbben.

Az alábbi felsorolás mutatja, a funkciók használatának LBound, UBound:

A tömbök VBA - a koncepció és a vektor dimenziójának

Tisztítás és eltávolítása a tömbök az Erase

Erase operátor lehetővé teszi hézag eltávolítására statikus tömbök és - dinamikus.

Ha a tömb elemei vannak töltve az adatokat a tömb marad mindaddig, amíg a felhasználó nem ad új értékek a tömb elemeit, vagy amíg VBA felszabadul a tömb. Gyakran előfordul, hogy a későbbi számítások dinamikus tömb semmilyen körülmények között nem fogja használni, ezért nem megfelelő a „hold” azt a számítógép memóriájában, mert ez hatással lehet a sebesség a programot. Vagy lehet, hogy törölje az összes értékek egy statikus tömb, amelyben egy számérték 0 és a húr - egy üres karakterlánc. Ez megvalósítható alkalmazásával beágyazott hurok - amint azt az előző órán. De ez lehet sokkal könnyebb:

Ez az operátor visszaáll (ha egy statikus tömb), vagy törli az (ha dinamikus tömb) array sajat_tomb.

Erase operátor eltávolítja a tömbök dinamikus memória, memóriát szabadít fel helyet a korábban használt, hogy tömb. Ha töröl egy dinamikus tömb az Erase operátor újra létre kell hozni a tömb a ReDim nyilatkozatot, mielőtt használni az adott dinamikus tömb újra.

Erase üzemeltető viselkedését statikus tömböket függ az adott típusú tömb elemeinek (lásd a táblázatot.)

Típusa statikus tömb