Excel VBA -taulukot: tyypit ja käyttö esimerkin avulla

⚡ Älykäs yhteenveto

Excelin VBA-taulukot tallentavat joukon saman tietotyypin toisiinsa liittyviä arvoja yhden nimen alle, ja niihin pääsee käsiksi indeksin avulla. Tällä sivulla selitetään staattiset ja dynaamiset taulukot, yksi-, kaksi- ja moniulotteiset taulukot, deklarointisyntaksi ja esimerkki juoman lataamisesta.

  • 📦 Taulukkokonsepti: Yksi nimetty muistipaikka, joka sisältää useita saman tietotyypin arvoja, jotka on erotettu toisistaan ​​indeksillä.
  • 🎯 edut: Taulukot ryhmittelevät toisiinsa liittyviä tietoja, vähentävät muuttujien määrää ja nopeuttavat tietojen hakemista ja lajittelua.
  • 📌 Staattinen taulukko: Ilmoitetaan kiinteällä koolla, esimerkiksi Dim ArrayMonth(12) As String, kun elementtien lukumäärä tunnetaan.
  • 🔄 Dynaaminen taulukko: Julistetaan tyhjäksi funktiolla Dim ArrayMonth() ja koko muutetaan myöhemmin funktiolla ReDim, kun elementtien lukumäärä on tuntematon.
  • 📐 Mitat: Taulukko käyttää yhtä, kahta tai useampaa indeksiä yksittäisten luetteloiden, taulukoiden tai monitasoisen datan mallintamiseen.
  • 🧪 Toimiva esimerkki: Komentopainike lataa neljän juoman nimeä taulukosta laskentataulukon soluihin Sheet1.Cells-funktion avulla.

Excel VBA -taulukot

Mikä on VBA Array?

Taulukko määritellään muistipaikaksi, joka pystyy tallentamaan useamman kuin yhden arvon. Kaikkien arvojen on oltava samaa tietotyyppiä. Oletetaan, että haluat tallentaa luettelon suosikkijuomistasi yhteen muuttujaan. Voit tehdä sen VBA-taulukon avulla.

Taulukkoa käyttämällä voit viitata vastaaviin arvoihin samalla nimellä. Voit erottaa ne toisistaan ​​hakemiston tai alaindeksin avulla. Yksittäisiin arvoihin viitataan Excelin VBA-taulukon elementteinä. Ne ovat vierekkäisiä indeksistä 0 korkeimpaan indeksin arvoon.

Tämä opetusohjelma olettaa, että käytät Microsoft kunnostautua versio 2013. Tieto pätee edelleen myös muihin versioihin Microsoft Excel samoin.

Mitkä ovat taulukoiden edut?

Ennen taulukkokoodin kirjoittamista on hyödyllistä ymmärtää, miksi taulukkojen käyttö kannattaa. Seuraavassa on joitakin VBA-taulukkofunktion tarjoamia etuja:

  1. Ryhmittele loogisesti toisiinsa liittyvät tiedot yhteen – oletetaan, että haluat tallentaa luettelon opiskelijoista. Voit käyttää yhtä taulukkomuuttujaa, jossa on erilliset sijainnit opiskelijaluokille, kuten lastentarha, alakoulu, lukio, lukio jne.
  2. Taulukot tekevät ylläpidettävän koodin kirjoittamisesta helppoa. Samoille loogisesti liittyville tiedoille sen avulla voit määrittää yhden muuttujan sen sijaan, että määrittäisit useamman kuin yhden muuttujan.
  3. Parempi suorituskyky – kun taulukko on määritetty, tietojen hakeminen, lajittelu ja muokkaaminen on nopeampaa.

VBA:n taulukoiden tyypit

VBA tukee kahta tyyppiä, nimittäin;

  • Staattinen – Tämän tyyppisissä taulukoissa on kiinteä ennalta määrätty määrä elementtejä, jotka voidaan tallentaa. Staattisen taulukon tietotyypin kokoa ei voi muuttaa. Nämä ovat hyödyllisiä, kun haluat työskennellä tunnettujen kokonaisuuksien, kuten viikonpäivien lukumäärän, sukupuolen jne., kanssa.Esimerkin: Dim ArrayMonth(12) As String
  • Dynaaminen – Tämän tyyppisissä taulukoissa ei ole kiinteää ennalta määrättyä määrää elementtejä, jotka voidaan tallentaa. Nämä ovat hyödyllisiä, kun työskentelet kokonaisuuksien kanssa, joiden lukumäärää et voi määrittää etukäteen.Esimerkin: Dim ArrayMonth() Varianttina

Kun tiedät, mikä tyyppi sopii tietoihisi, seuraava vaihe on kunkin tyypin deklarointisyntaksi.

Syntaksi taulukoiden ilmoittamiseen

Staattiset taulukot

Ilmoituksen syntaksi STAATTINEN taulukot ovat seuraavat:

Dim arrayName (n) as datatype

TÄSSÄ,

Code Toiminta
Himmeä arrayName (n) -tietotyyppi
  1. Se ilmoittaa taulukkomuuttujan nimeltä arrayName, jonka koko on n ja tietotyyppi. Koko viittaa elementtien määrään, jonka taulukko voi tallentaa.

Dynaamiset taulukot

Ilmoituksen syntaksi DYNAAMINEN taulukot ovat seuraavat:

Dim arrayName() as datatype
ReDim arrayName(4)

TÄSSÄ,

Code Toiminta
Himmeä arrayName () -tietotyyppi
  1. Se ilmoittaa taulukkomuuttujan nimeltä arrayName määrittelemättä elementtien määrää
Redim arrayName(4)
  1. Se määrittää taulukon koon sen jälkeen, kun taulukko on määritetty.

Array Mitat

Taulukko voi olla yksiulotteinen, kaksiulotteinen tai moniulotteinen.

  • Yksi ulottuvuus: Tässä ulottuvuudessa taulukko käyttää vain yhtä indeksiä. Esimerkiksi joukko ihmisiä eri ikäisistä.
  • Kaksi ulottuvuutta: Tässä ulottuvuudessa taulukko käyttää kahta indeksiä. Esimerkiksi jokaisella luokalla on useita oppilaita. Se vaatii luokkien lukumäärän ja opiskelijamäärän jokaisessa luokassa
  • Moniulotteinen: Tässä ulottuvuudessa taulukko käyttää useampaa kuin kahta indeksiä. Esimerkiksi lämpötilat päiväsaikaan. ( 30, 40, 20).

Arrayn käyttäminen Excel VBA:ssa

Teorian käytyämme voimme ottaa taulukon käyttöön oikeassa työkirjassa. Luomme yksinkertaisen sovelluksen. Tämä sovellus täyttää Excel-taulukon taulukkomuuttujasta saaduilla tiedoilla. Tässä VBA-taulukkoesimerkissä teemme seuraavat asiat.

  • Luoda uusi Microsoft Excel-työkirja ja tallenna se Excel-makrokäyttöisenä työkirjana (*.xlsm)
  • Lisää komentopainike työkirjaan
  • Aseta komentopainikkeen nimi ja kuvatekstiominaisuudet
  • Excel-taulukon täyttävän VBA:n ohjelmointi

Tee tämä harjoitus askel askeleelta,

Vaihe 1 – Luo uusi työkirja

  1. avoin Microsoft kunnostautua
  2. Tallenna uusi työkirja nimellä VBA Arrays.xlsm

Vaihe 2 – Lisää komentopainike

Huomautus: Tässä osiossa oletetaan, että tunnet käyttöliittymän luomisprosessin Excelissä. Jos et ole tuttu, lue opetusohjelma VBA Excel Form Control & ActiveX Control. Se näyttää sinulle, kuinka käyttöliittymä luodaan

  1. Lisää komentopainike arkkiin

Käytä Arraya Excel VBA:ssa

  1. Aseta nimiominaisuuden arvoksi cmdLoadBeverages
  2. Aseta kuvateksti-ominaisuuden arvoksi Load Beverages

GUI:si pitäisi nyt olla seuraava

Käytä Arraya Excel VBA:ssa

Vaihe 3 – Tallenna tiedosto

  1. Napsauta Tallenna nimellä -painiketta
  2. Valitse Excel-makrokäyttöinen työkirja (*.xlsm) alla olevan kuvan mukaisesti

Käytä Arraya Excel VBA:ssa

Vaihe 4 – Kirjoita koodi

Kirjoitamme nyt sovelluksemme koodin

  1. Napsauta hiiren kakkospainikkeella Lataa juomat -painiketta ja valitse Näytä koodi
  2. Lisää seuraava koodi cmdLoadBeveragen napsautustapahtumaan
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String

    Drinks(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

TÄSSÄ,

Code Toiminta
Dim Drinks (1 - 4) merkkijonona
  • Se ilmoittaa taulukkomuuttujan nimeltä Drinks. Ensimmäinen taulukkoindeksi on 1 ja viimeinen taulukkoindeksi on 4.
Juomat (1) = "Pepsi"
  • Määrittää arvon Pepsi ensimmäiselle taulukon elementille. Toinen samanlainen koodi tekee saman taulukon muille elementeille.
Sheet1.Cells(1, 1).Value = “Suosikkijuomat”
  • Kirjoittaa arvon My Favourite Beverages soluosoitteeseen A1. Sheet1 viittaa taulukkoon ja solut(1,1) viittaa riviin 1 ja sarakkeeseen 1 (B)
Taulukko1.Solut(2, 1).Arvo = Juomat(1)
  • Kirjoittaa indeksillä 1 olevan taulukkoelementin arvon sarakkeen 1 riville numero kaksi

Testaamme sovellustamme

Kun koodi on paikallaan, viimeinen vaihe on painikkeen suorittaminen ja sen varmistaminen, että taulukko täyttää arkin. Valitse kehittäjävälilehti ja varmista, että Suunnittelutila-painike on pois päältä. Merkkivalo osoittaa, että sillä on valkoinen tausta eikä värillinen (vihertävä) tausta. (Katso kuva alla)

Sovelluksen testaus Excel VBA:ssa

Napsauta Lataa juomat -painiketta

Saat seuraavat tulokset

Sovelluksen testaus Excel VBA:ssa

Lataa Excel, joka sisältää yllä olevan koodin

Lataa yllä oleva Excel-tiedosto Code

UKK

Staattisella taulukolla on kiinteä koko, joka asetetaan määrittelyn yhteydessä, kuten Dim Arr(12). Dynaaminen taulukko määritetään tyhjäksi Dim Arr():lla ja sen kokoa muutetaan myöhemmin ReDim:llä, jos alkioiden lukumäärää ei tiedetä etukäteen.

ReDim asettaa tai muuttaa dynaamisen taulukon kokoa sen määrittämisen jälkeen. Preserve-avainsanan lisääminen, kuten ReDim Preserve Arr(10):ssä, säilyttää olemassa olevat arvot koon muuttamisen aikana; ilman Preserve-avainsanaa kaikki tallennetut arvot tyhjennetään.

Käytä LBound- ja UBound-funktioita. LBound palauttaa pienimmän indeksin ja UBound palauttaa suurimman indeksin. Elementtien lukumäärä on UBound(Arr) miinus LBound(Arr) plus yksi, mikä toimii sekä staattisille että dynaamisille taulukoille.

Kyllä. Tekoälyavustajat, kuten Copilot, luovat taulukkomäärittelyjä ja silmukoita pelkästä pyynnöstä, esimerkiksi lataavat kymmenen tuotenimeä sarakkeeseen. Kehittäjä liittää koodin editoriin ja testaa sitä työkirjan kopiossa.

Kyllä. Tekoälyavustajat lukevat ”Subscript out of range” -virheen ja koodin, osoittavat sitten indeksiin, joka ylittää taulukon rajat, ja ehdottavat korjausta, kuten ReDim-koon tai silmukkalaskurin säätämistä. Kehittäjä soveltaa ja testaa sen uudelleen.

Tiivistä tämä viesti seuraavasti: