Exceli VBA massiivid: mis on, kuidas & Massiivide tüübid VBA-s

Lang L: none (table-of-contents):

Anonim

Mis on VBA massiiv?

Massiiv on määratletud kui mälupaik, mis suudab salvestada rohkem kui ühte väärtust. Kõik väärtused peavad olema sama tüüpi andmetega. Oletame, et soovite oma lemmikjookide loendi salvestada ühte muutujasse, saate selleks kasutada VBA massiivi.

Massiivi abil saate viidata seotud väärtustele sama nimega. Nende eristamiseks võite kasutada indeksit või alaindeksit. Üksikuid väärtusi nimetatakse Exceli VBA massiivi elementideks. Need on külgnevad indeksist 0 kuni kõrgeima indeksi väärtuseni.

Selles õpetuses eeldatakse, et kasutate Microsoft Exceli versiooni 2013. Teadmised kehtivad endiselt ka teiste Microsofti Exceli versioonide kohta.

Selles VBA programmeerimise õpetuses saate

  • Mis on massiivide eelised?
  • Massiivide tüübid VBA-s
  • Massiivi kasutamine Exceli VBA-s
  • Meie rakenduse testimine

Mis on massiivide eelised?

Järgnevalt on toodud mõned eelised, mida pakub VBA massiivi funktsioon

  1. Grupeerige loogiliselt seotud andmed kokku - oletame, et soovite salvestada õpilaste nimekirja. Võite kasutada ühte massiivimuutujat, millel on õpilaskategooriate jaoks eraldi asukohad, näiteks kindral aed, põhi-, kesk-, keskkool jne
  2. Massiivid muudavad hooldatava koodi kirjutamise lihtsaks. Samade loogiliselt seotud andmete jaoks võimaldab see määratleda ühe muutuja selle asemel, et määratleda rohkem kui üks muutuja.
  3. Parem jõudlus - kui massiiv on määratletud, on andmete hankimine, sortimine ja muutmine kiirem.

Massiivide tüübid VBA-s

VBA toetab kahte tüüpi massiive, nimelt;

  • Staatiline - seda tüüpi massiividel on kindel kindel elementide arv, mida saab salvestada. Staatilise massiivi andmetüübi suurust ei saa muuta. Need on kasulikud, kui soovite töötada tuntud üksustega, näiteks nädalapäevade arv, sugu jne.

    Näiteks : Dim ArrayMonth (12) stringina

  • Dünaamiline - seda tüüpi massiividel pole kindlat eelnevalt kindlaksmääratud arvu elemente, mida saab salvestada. Need on kasulikud üksustega töötamisel, mille arvu ei saa ette määrata.

    Näiteks : Dim ArrayMonth () variandina

Massiivide deklareerimise süntaks

Staatilised massiivid

STATIC- massiivide deklareerimise süntaks on järgmine:

Dim arrayName (n) as datatype

SIIN,

Kood Tegevus
Dim arrayName (n) andmetüüp
  1. See deklareerib massiivi muutuja nimega arrayName suurusega n ja andmetüüp. Suurus viitab massiivi salvestatavate elementide arvule.

Dünaamilised massiivid

DYNAMIC massiivide deklareerimise süntaks on järgmine:

Dim arrayName() as datatypeReDim arrayName(4)

SIIN,

Kood Tegevus
Dim arrayName () andmetüüp
  1. See deklareerib massiivi muutuja nimega arrayName ilma elementide arvu täpsustamata
ReDim arrayName (4)
  1. See määrab massiivi suuruse pärast massiivi määratlemist.

Massiivi mõõtmed

Massiiv võib olla üks dimensioon, kaks dimensiooni või mitmemõõtmeline.

  • Üks mõõde : selles dimensioonis kasutab massiiv ainult ühte indeksit. Näiteks arv inimesi igas vanuses.
  • Kaks mõõdet : selles dimensioonis kasutab massiiv kahte indeksit. Näiteks igas klassis mitu õpilast. See nõuab klasside arvu ja õpilaste arvu igas klassis
  • Mitmemõõtmeline : selles dimensioonis kasutab massiiv rohkem kui kahte indeksit. Näiteks temperatuurid päeval. (30, 40, 20).

Massiivi kasutamine Exceli VBA-s

Loome lihtsa rakenduse. See rakendus täidab Exceli lehe massiivi muutuja andmetega. Selles VBA massiivi näites teeme järgmisi asju.

  • Looge uus Microsoft Exceli töövihik ja salvestage see Exceli makrotoega töövihikuna (* .xlsm)
  • Lisage töövihikule käsunupp
  • Määrake käsunupu nimi ja pealkirja omadused
  • Exceli lehte asustava VBA programmeerimine

Laske seda harjutust teha samm-sammult,

1. samm - looge uus töövihik

  1. Avage Microsoft Excel
  2. Salvestage uus töövihik nimega VBA Arrays.xlsm

2. samm - lisage käsunupp

Märkus. Selles jaotises eeldatakse, et olete Excelis liidese loomise protsessiga tuttav. Kui te pole tuttav, lugege VBA Exceli vormikontrolli ja ActiveX-juhendi õpetust. See näitab teile, kuidas liidest luua

  1. Lisage lehele käsunupp
  1. Määrake atribuudiks nimi cmdLoadBeverages
  2. Määrake pealdise atribuudiks Jookide laadimine

Teie GUI peaks olema järgmine

3. samm - salvestage fail

  1. Klõpsake nuppu Salvesta nimega
  2. Valige Exceli makrotoega töövihik (* .xlsm), nagu on näidatud alloleval pildil

4. samm - kirjutage kood

Kirjutame nüüd oma rakenduse koodi

  1. Paremklõpsake nuppu Laadi joogid ja valige kuvakood
  2. Lisage järgmine kood cmdLoadBeverages'i klikiüritusele
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(1) = "Pepsi"Drinks(2) = "Coke"Drinks(3) = "Fanta"Drinks(4) = "Juice"Sheet1.Cells(1, 1).Value = "My Favorite Beverages"Sheet1.Cells(2, 1).Value = Drinks(1)Sheet1.Cells(3, 1).Value = Drinks(2)Sheet1.Cells(4, 1).Value = Drinks(3)Sheet1.Cells(5, 1).Value = Drinks(4)End Sub

SIIN,

Kood

Tegevus

Hämarad joogid (1 kuni 4) stringidena

  • See kuulutab massiivi muutuja nimega Drinks. Esimese massiivi indeks on 1 ja viimane massiivi indeks on 4.

Joogid (1) = "Pepsi"

  • Määrab väärtusele Pepsi esimese massiivi elemendi. Teine sarnane kood teeb sama massiivi teiste elementide puhul.

Sheet1.Cells (1, 1) .Value = "Minu lemmikjoogid".

  • Kirjutab lahtriaadressile A1 väärtuse Minu lemmikjoogid. Leht1 viitab lehele ja lahtrid (1,1) viitavad reale 1 ja veerule 1 (B)

Leht 1. Rakud (2, 1). Väärtus = Joogid (1)

  • Kirjutab massiivi elemendi indeksiga 1 väärtuse veeru 1 reale number 2

Meie rakenduse testimine

Valige vahekaart arendaja ja veenduge, et nupp Kujundusrežiim oleks välja lülitatud. Indikaator on see, et sellel on valge taust, mitte värviline (rohekas) taust. (Vaata pilti allpool)

Klõpsake nuppu Laadi joogid

Saad järgmised tulemused

Laadige alla ülaltoodud kood sisaldav Excel

Laadige ülaltoodud Exceli kood alla

Kokkuvõte

  1. Massiiv on muutuja, mis suudab salvestada rohkem kui ühte väärtust
  2. Excel VBA toetab staatilisi ja dünaamilisi massiive
  3. Massiivid muudavad hooldatava koodi kirjutamise lihtsaks, võrreldes paljude muutujate deklareerimisega andmetele, mis on loogiliselt seotud.