tömbök №8

Sok meghatározás a tömb. Ezek különböző formában, de azonos tartalommal.

Array - egy sor azonos típusú adatok a memóriában, és amelynek nevét.

A tömb a következő tulajdonságokkal rendelkezik:

index - a cikkszám a tömbben;

elem - minden egyes érték a tömbben;

mérete - az elemek száma a tömbben.

Egy tömb gyakran nevezik asztalra.

egy egydimenziós tömb index azt jelzi, ... (a helyen vagy helyzetben egy elem a tömbben).

Az első elem indexe a kétdimenziós tömb jelzi ... (a vonal, amely a tömb elem).

A második elem indexe a kétdimenziós tömb jelzi ... (oszlopon, amelyben az elem a tömb).

tömbök №8

Dimenziós tömbök VBA

A legkevésbé bonyolult tömbben - ez csak egy lista az adatelemek; ez az elrendezés az úgynevezett egyszerű vagy egydimenziós tömböt. Egy ilyen tömb is képviselteti magát a sorban, ahol minden elem a sorban van rendelve nem csak a sorszám (a sorban), de a konkrét érték (név).

Létrehozásakor tömbök, beleértve a több-dimenziós, hogy tárolja az érték az egyes elem kiosztott memória (akkor is, ha null vagy üres string). Így, ami egy nagy tömb, van egy éles csökkenés rendelkezésre álló memória, ami hátrányosan befolyásolhatja a működését a program. Ezért, hogy hozzon létre egy többdimenziós tömböt kell csak, ha szükséges. Az ilyen tömbök nevezzük (statikus), mert az elemek száma a tömbben nem változik.

Kiválasztása a tömb méretét nehéz lehet, ha nem tudja, hogy mennyi adat bekerül a tömb, vagy ha az összeg a gyűjtött adatok a tömb nagyon változó. Az ilyen helyzetekre VBA támogatja egy adott típusú tömbök, az úgynevezett dinamikus (dinamikus) tömb.

Dinamikus tömbök által létrehozott üzemeltető Dim, Private, Public vagy statikus, ahol a dimenziók listáját nincs megadva, akkor a méretük beállítható ReDim üzemeltető az eljárás során.

A ReDim kijelentés szintaxis a következő:

ReDim [megőrzése] varname (alsó indexek) [Ahogy típusa] [, varname (alsó indexek) [mint TYPE]],

ahol kötelező kulcsszó megőrzése okoz VBA hogy tárolja az adatokat egy meglévő tömböt, amikor a tömb mérete megváltozik keresztül ReDim;

varname - a nevét egy meglévő tömb;

indexek - mérési array (indexeket szintaxisa a kezelő az üzemeltető ReDim ugyanaz, mint az üzemeltető Dim);

írja - a típus vagy VBA felhasználói típusú.

Használjon külön típusként szereplő minden tömb, amit meg.

Dim hónap () As String - kijelenti egy dinamikus tömb hónap;

ReDim hónap (1-től 30) -, hogy módosítsa a tömb méretét a 30 elemek;

ReDim hónap (31) -, hogy módosítsa a méret a tömbelem 31;

ReDim Preserv hónap (1-től 31-ig) - változtatni a méret a tömbelem 31, miközben a tartalmát;

Dim táblázat () As Integer - kijelenti egy dinamikus tömb;

ReDim táblázat (3, 15), - hogy egy kétdimenziós tömböt;

ReDim táblázat (4, 20) - átméretezi a kétdimenziós tömböt;

ReDim Preserv táblázat (4, 25) - Csak az utolsó változtatás a tömb;

Dim Mas mint Variant - nyilatkozik egy változó típusú Variant;

ReDim Mas (20) As Integer - létrehoz egy sor 20 egész számok a Variant.

Következtetések a Visual Basic tömbök:

Csak akkor tudja megváltoztatni az utolsó dimenzió egy többdimenziós tömb, ha ugyanaz a kulcsszó Preserv;

Használhatja a ReDim hogy hozzon létre egy gépelt tömb egy változó típusú Variant.

A tömb a programban is meghatározható elemenként. Például, a következő kód:

Dim B (l február 1-02), mint egyetlen

Ez létrehoz egy kétdimenziós tábla létrehoz egy kétdimenziós tábla

Amikor dolgozik tömbök, célszerű használni a következő funkciókat és eljárásokat.

Hívás: Array (ArgumentList)

Ez létrehoz egy sor típusú Variant. Az érvelés zárójelben jelentése vesszővel elválasztott listáját hozzárendelt értékek a tömb elemeinek.

Dim nap Variant

Nap = Array ( 'mo', 'tu', 'cp', ...)

VBA két funkciója van, amely nyomon követi a felső és az alsó határ tömb indexek - Lbound funkció és Ubound. Ezek a funkciók vissza a felső és alsó határ értékei az indexek a statikus vagy dinamikus tömb.

Lbound (arrayName [dimenzió])

Ubound (arrayName [dimenzió])

ahol ArrayName - a tömb neve változó;

A dimenzió - egy egész szám jelzi a dimenziója a tömb, az alsó vagy a felső határt, hogy a funkció visszatér. fel kell tüntetni az első dimenzióban 1, a második - 2, stb Ha a dimenzió az érvelés elhagyjuk az implikált értéke 1.

Erase operátor (tisztítás vagy eltávolítása tömbök).

Erase operátor lehetővé egy két dolgot, attól függően, hogy a felhasználó hogyan manipulálja egy tömb - statikus vagy dinamikus. Abban az esetben, statikus tömböket Erase lehetővé teszi, hogy tiszta minden eleme a tömb, alapvetően alaphelyzetbe a tömb azonos állapotban van, ami azt volt, amikor VBA létre a memóriában. Abban az esetben, dinamikus tömböket Erase lehetővé teszi, hogy teljesen eltávolítani a tömb és a tartalmát a RAM.

VBA törli a memóriából tömböket deklaráljuk helyben eljárással (valamint más lokális változók), minden alkalommal az eljárást végzik leáll. Azonban, tömbök, kijelentette modul szinten vannak, mint bármely eljárás ebben a modulban kerül végrehajtásra. Ha egy nagy program, akkor visszaállíthatja a memória által használt erőforrások dinamikus tömböket moduláris szinten. Erase lehetővé teszi a kezelő nem csak ezt.

Erase tömb1 [, tömb2 ...]

Itt az array 1, és a tömb 2. érvényes VBA tömb nevét.

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. Amikor megpróbál hozzáférni az elemek egy dinamikus tömb, amelyet már használt Erase kezelő nélkül felülbíráló, VBA hibaüzenetet jelenít meg.

A nulla-alapú tömbök szokásosan alkalmazott VBA. A számozási rendszer a zéró-alapú index az első elem minden dimenzióban a tömb értéke 0; egy tömb elemekkel 10 rendelkezik indexek 0-9.

Nem lenne sokkal könnyebb, ha a tömb elemeit számozott 1-től kezdődően, nem 0-val VBA lehetővé teszi, hogy meghatározza a kezdeti számát a tömb elemeinek felhasználásával Option Base fordító irányelv határozza meg, hogy a számozás az indexek 0-val kezdődnek, vagy 1.

Irányelv Option Base fordítóprogram szintaxis a következő:

Option Base 0 | 1

Option Base 0 „alapbeállítás nullára

Option Base 1 „indexek tömbök kezdeni 1

Készítsen programot, szervezése háromdimenziós tömbben. Az első két tömböt elemenként a programban meghatározottak szerint. Egy harmadik tömb által szervezett összeadásával megfelelő tömbök tagok B és C.

Az eredményeket a szervezet állítja kimenet a megfelelő címkét a forma után a gombra kattintva tömb.

tömbök №8

Private Sub CommandButton1_Click ()

Dim B (1 To 2 1 2) As Integer

Dim c (1 To 2 1 2) As Integer

Dim A (1 To 2 1 2) As Integer

Label3.Caption = «a (1.1) =» Egy (1, 1) «A (1.2) =» Egy (1, 2) «A (2.1) =» A (2, 1) «A (2.2) =» A (2, 2)

Label6.Caption = «k (1.1) =» k (1, 1) «K (1,2) =» k (1, 2) «K (2.1) =» K (2, 1) «K (2.2) =» K (2, 2)

Ahhoz, hogy hozzon létre egy tömböt, akkor meg kell adni: a nevet, az elemek száma (a tömb méretét), az adatok típusát, hogy fogják tárolni a tömbben.

A tömbök létre a Dim utasítással:

Dim ArrayName (méret), DataType

Ha ehelyett a szó írja be a szót Dim Nyilvános, akkor létrehozunk egy tömböt terület, amely meg fog jelenni az egész programot.

Példa: Dim MoyMassiv (3) As Integer

Ez létrehoz egy tömböt elemzi MoyMassiv álló négy elem és tárolására alkalmas értékű egész szám jellegű.

Amint a visszaszámlálás kezd az elemek a nulla szám, a 3. számú elhelyezve.

Egy másik változata a tömb-hozzárendelés: adja meg az első és az utolsó szám a tömb elemei:

Dim MoyMassiv (1 Mi 3) As Integer

Elemeket létrehozni egy tömböt nem tartalmaz adatot. Ahhoz, hogy menteni egy sor olyan értéket, akkor meg kell adnia, hogy melyik elem kell hozzárendelni. Tegyük fel, hogy létrehozunk egy tömböt, amely legfeljebb öt sort:

Dim Alkalmazott (4) As String

Ha szeretné, hogy az első elem a tömb értéket rendelni Ivan Nikitin, szükséges előírni a következő kódot:

A legtöbb programban, ha létre egy tömböt, ha már inicializált beállításával minden egyes eleme a nulla értéket, vagy egy üres karakterlánc. Ezt meg lehet tenni egy ciklus a következő, például:

Dim tisztviselő (4) As String

Dim I As Integer

alkalmazott (I) = InputBox ( "vvedite Imia")

MsgBox alkalmazott (I)

Az értékek a tömb elemeinek lehet rendelni egy másik változó, például:

Dim tisztviselő (4) As String

Dim nyaralás As String

Az első sor létrehoz egy sor Munkavállaló, amely öt szöveges értékek;

A második sor létrehoz egy szöveges változó üdülési;

egy harmadik sort a negyedik elem a tömb (amely megfelel a harmadik szekvencia szám) van beállítva Ivan Nikitin;

A negyedik sorban a változó rendelt tömb elem ünnep dolgozói értéket, amely megfelel a harmadik szám.

Jellemzően, a tömb elemei tartalmaznak vonatkozó értékek egy adattípust, például csak sorok, vagy csak egész számok. Ha szükséges, hogy a tömb tartalmazza a különböző adattípusok létrehozása során a tömb, a pontos adatokat típus Object:

Dim MoyMassiv mint objektum

Elemei a tömb tartalmazza azokat az értékeket különböző típusai:

Kétdimenziós tömbök VBA

Az eljárás létrehozására egy kétdimenziós tömb ugyanaz, mint az egydimenziós, az egyetlen különbség az, hogy jelzi, a mérete, meg kell adnia a két érték - a sorok és oszlopok:

Dim DvuhMMassiv (sorok, oszlopok) Ami adat típusa

A méret a háromdimenziós tömb fogja meghatározni három számot, és így tovább:

Dim TrehMMassiv (X, Y, Z) Amint DataType

Feltölt egy tömböt véletlen képletek:

Dim egy (1-től 22) As Integer

egy (i) = -5 + Fix (Rnd * (37 - (-5) + 1))