Exceli VBA massiivid

Exceli VBA massiiv pole midagi muud kui muutuja, mis mahutab sama andmetüüpi. Massiiv on muutujate rühm, kuhu saab salvestada rohkem kui ühe muutuja. Muutuja nimi on sama, kuid see võib ühe muutuja korral sisaldada erinevaid väärtusi. VBA-massiiv on teatud tüüpi muutuja, mida kasutatakse sama tüüpi andmete loendite talletamiseks.

Kui meil on 5 numbrit sisaldavat lahtrit, peame deklareerima 5 muutujat, et vahemikus oleks 5 erinevat arvu. Kuid massiivi kasutades suudame ühes muutujas hoida 5 erinevat väärtust.

Kuidas kasutada Exceli VBA massiive?

Mõistame, kuidas kasutada Exceli VBA massiive ja nende tüüpe koos mõne näitega.

Selle VBA massiivi Exceli malli saate alla laadida siit - VBA massiivi Exceli malli

Näide nr 1

Vaadake allpool toodud näidet. X on muutuja, mis hoiab andmetüübi täisarvu.

Kood:

 Alammassiiv_näide1 () Tühi x täisarvuna = = 1 Lõpp alam 

Määrake deklareeritud muutujale x väärtus 1 .

Lisage lahtrisse A1 väärtus 1.

Kood:

 Alarühm_näide1 () Tühi x täisarvuna x = 1 vahemik ("A1") .Väärtus = x 
 Lõpu alam 

X väärtus on 1 ja vahemikus A1 sisestatakse väärtus x väärtusena, st x väärtus on 1. Nüüd tulemuste kuvamiseks käivitage kood F5-klahvi abil või käsitsi.

Ülaltoodud näites sisaldab x ainult ühte muutujat, see on kõik. Kuid kui ma soovin sisestada 5 järjestikust numbrit ühe muutuja abil, tuleb kasutada tüüpi massiivi muutujat, mis mahutab ühe muutuja nimel mitu muutuja väärtust.

Näide 2

Vaadake nüüd allpool toodud näidet. Muutuja nimi on x ja andmetüüp on LONG. Kuid muutuja enda kuulutamisel olen sulgu avanud ja maininud 1 kuni 5. See tähendab, et muutuja x hoiab 5 erinevat tüüpi väärtust.

Kood:

 Alammassiiv_näide () Tühi x (1 kuni 5) Nii kaua, kui täisarvuna Lõpeta alam 

Pärast seda olen igale muutujale väärtused määranud. X (1) = 20 tähendab, et esimene muutuja peaks olema võrdne väärtusega 20. X (2) = 25 tähendab, et teine ​​muutuja peaks olema võrdne väärtusega 25 ja nii edasi.

Kood:

 Alammassiiv_näide () Tühi x (1 kuni 5) nii pikk, i kui täisarv x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Hiljem olen kuulutanud veel ühe muutuja nimega “I”, see on muutuja teist tüüpi tüüp ja sisaldab täisarvutüübi andmetüüpi.

Järgmises etapis olen FOR-silmuseid rakendanud, et sisestada esimesse veergu massiivi määratud numbrid. Olen määranud muutuja i väärtuseks 1 ja juhendanud, et silmus töötab 1-5 korda. Kui silmus töötab esimest korda, on i väärtus võrdne 1. Kärgede (I, 1) .väärtus = x (i) tähendab see, et esimest korda on i võrdne 1ga, st CELLS (1, 1) .väärtusega = x (1), esimese rea esimeses veerus (lahter A1) on väärtus esimese massiivi ( x (1) ) väärtus, st 20.

Kui silmus töötab teist korda, saab i väärtuseks 2, st CELLS (2, 1) .väärtus = x (2), siis teise rea esimeses veerus (A2) on väärtus teise massiivi ( x (2) ) väärtus st 25.

Kood:

 Alammassiiv_näide () Tühi x (1 kuni 5) Nii pikk, kui täisarv x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 i = 1 kuni 5 lahtrit (i, 1) .Väärtus = x (i) Järgmine i End Sub 

Nagu näiteks siis, kui silmused pidevalt töötavad, muutuvad väärtused. Kui ahelad töötavad kolmandat korda, siis A3 lahtri väärtus on 44, neljanda aja tsükli korral A4 lahtri väärtus on 78, kui ahelad töötavad viimast korda, või viiendat korda, kui A5 lahtri väärtus on 96.

Pärast koodi käitamist F5-klahvi abil või käsitsi, saame tulemused nagu allpool näidatud.

Massiivide tüübid Excelis

Massiive on VBA-s erinevat tüüpi. Excelis on saadaval viit tüüpi massiive.

  • Staatiline massiiv
  • Dünaamiline massiiv
  • Ühemõõtmeline massiiv
  • Kahemõõtmeline massiiv
  • Mitmemõõtmeline massiiv

Staatiline massiiv

Seda tüüpi massiivides on massiivi pikkus eelnevalt kindlaks määratud ja see jääb konstantseks.

Kood:

 Alamstaatiline_näide () Hämar ArrayType (1 kuni 3) täisarvuna ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 lahtrit (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Lahtrid (1, 3) .Value = ArrayType (3) End Sub 

Ülaltoodud koodi korral määratakse ArrayType pikkus aegsasti 1 kuni 3 ja andmetüübiks on täisarv.

Pärast koodi käitamist F5-klahvi abil või käsitsi, saame tulemused nagu allpool näidatud.

Dünaamiline massiiv

Seda tüüpi massiivi korral ei ole massiivi pikkust aegsasti ette määratud.

Kood:

 Alamdünaamiline_näide () Dim ArrayType () Variant ReDim ArrayType (3) ArrayType (1) = "Minu nimi" ArrayType (2) = "on" ArrayType (3) = "Excel" Cells (1, 1) .Value = ArrayType (1) Lahtrid (1, 2) .Value = ArrayType (2) Lahtrid (1, 3) .Value = ArrayType (3) End Sub 

Seda tüüpi massiivi korral on andmed variatiivsed ja siin pikkust ei määrata. Pärast muutuja deklareerimist määrasin massiivi pikkuse funktsiooni ReDim abil. See massiiv lisab väärtused nagu see lahter A1 = Minu nimi, lahter B1 = on, lahter C1 = Excel.

Ühemõõtmeline massiiv

Seda tüüpi massiivides määratakse pikkus, kuid ühes mõõtmes see töötab.

Kood:

 Sub One_Dimensional () Hämardada OneDimension (1 kuni 3) Kuna string OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Näidake neid väärtusi VBA-teatekastis.

Kood:

 Sub One_Dimensional () Dim OneDimension (1 kuni 3) Nagu string OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) Lõpp-alam 

Käivitage see kood F5-klahvi abil või käsitsi ja saame järgmise tulemuse.

Kahemõõtmeline massiiv

Seda tüüpi massiivides määratakse pikkus kahes mõõtmes ja see töötab.

Kood:

 Kahemõõtmeline alamdimensioon () Mõõdetud kahemõõtmeline (1 kuni 2, 1 kuni 2) Nii pikk, kui keskmine, nii täisarv, kui suurus on täisarv, Kahemõõtmeline (1, 2) = 40 Kahemõõtmeline (2, 1) = 50 Kahemõõtmeline (1, 1) = 15 Kahemõõtmeline (2, 2) = 10 lõpp-alam 

Nüüd salvestage need väärtused lahtritesse, mille kood on allpool.

Kood:

 Kahemõõtmeline alamdimensioon () Mõõdetud kahemõõtmeline (1 kuni 2, 1 kuni 2) Nii pikk, kui keskmine, nii täisarv, kui suurus on täisarv, Kahemõõtmeline (1, 2) = 40 Kahemõõtmeline (2, 1) = 50 Kahemõõtmeline (1, 1) = 15 Kahemõõtmeline (2, 2) = 10 i = 1 kuni 2 j = 1 kuni 2 lahtrit (i, j) = kahemõõtmeline (i, j) järgmine j järgmine i lõpp Sub 

See salvestab andmed nagu allpool.

Mitmemõõtmeline massiiv

Seda tüüpi massiivides määratakse pikkus, kuid mitmemõõtmeline see töötab.

Kood:

 Alammõõtmeline mitmemõõtmeline () Kahemõõtmeline dimensioon (1 kuni 3, 1 kuni 2) Sama pikk nagu I Täismõõtmes J Täisarvuline Mitmemõõtmeline (1, 1) = 15 Mitmemõõtmeline (1, 2) = 40 Mitmedimensiooniline (2, 1) = 50 Mitmedimensiooniline (2, 2) = 10 mitmemõõtmelist (3, 1) = 98 mitmemõõtmelist (3, 2) = 54 

Kui vaatate kõigepealt ülaltoodud koodi, siis olen massiivi kuulutanud kui 1 kuni 3 ja siis 1 kuni 2. See tähendab, et esmalt massiivi kirjutades saan kasutada ainult 1 kuni 3 numbrit, kuid teises ruumis saan kasutada ainult 1 kuni 2, mitte 1 kuni 3.

Loopi abil saame väärtused lahtritesse sisestada. Olen mitmemõõtmelise massiivi jaoks kasutanud kahte silmust.

Kood:

 Alammõõtmeline mitmemõõtmeline () Kahemõõtmeline dimensioon (1 kuni 3, 1 kuni 2) Sama pikk nagu I Täismõõtmes J Täisarvuline Mitmemõõtmeline (1, 1) = 15 Mitmemõõtmeline (1, 2) = 40 Mitmedimensiooniline (2, 1) = 50 Mitmedimensiooniline (2, 2) = 10 mitmemõõtmelist (3, 1) = 98 mitmemõõtmelist (3, 2) = 54 i = 1 kuni 3 jaoks j = 1 kuni 2 lahtrit (i, j) = mitmemõõtmeline (i, j) järgmine j Järgmine i Sub alam 

Pärast koodi käitamist F5-klahvi abil või käsitsi, saame tulemused nagu allpool näidatud.

Asjad, mida meeles pidada

  • Massiiv loeb väärtused nullist, mitte 1-st.
  • Massiiv (0, 0) tähendab esimese rea esimest veergu.
  • See exceli makrofail tuleb salvestada makrofunktsioonide töövihikuna.
  • Dünaamilise massiivi korral peame massiivi väärtuse määrama, kasutades VBA funktsiooni REDIM.

Soovitatavad artiklid

See on olnud VBA massiivide juhend. Siin arutasime VBA massiivide tüüpe ja Exceli VBA massiivide kasutamist koos mõnede praktiliste näidete ja allalaaditava Exceli malliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Otsi funktsiooni Excelis näidetega
  2. Mis on VBA funktsioon Excelis?
  3. VBA vahemiku objekti juhend
  4. Kuidas kasutada VBA VLOOKUP funktsiooni?

Kategooria: