Excel VBA -matriisit

Excel VBA-taulukko ei ole muuta kuin muuttuja, joka voi pitää samantyyppistä tietotyyppiä. Matriisi on muuttujien ryhmä, joka voi tallentaa useampaa kuin yhtä muuttujaa. Muuttujan nimi on sama, mutta se voi pitää eri arvoja yhdessä muuttujassa. VBA-taulukko on tyyppi muuttujaa, jota käytetään samantyyppisten dataluetteloiden tallentamiseen.

Jos meillä on 5 solua, joissa on numeroita, meidän on julistettava 5 muuttujaa 5 alueen eri numeron pitämiseksi. Mutta käyttämällä taulukkoa, meillä voi olla 5 erilaista arvoa yhdessä muuttujassa.

Kuinka käyttää Excel VBA -matriiseja?

Ymmärretään kuinka käyttää Excel VBA -ryhmiä ja niiden tyyppejä muutamilla esimerkeillä.

Voit ladata tämän VBA Arrays Excel -mallin tästä - VBA Arrays Excel Template

Esimerkki # 1

Katso seuraava esimerkki. X on muuttuja, joka pitää kokonaisluvun datatyyppiä.

Koodi:

 Osamatriisi_esimerkki1 () himmennys x kokonaislukuna x = 1 Loppu alaosaan 

Määritä nyt arvo 1 ilmoitetulle muuttujalle x.

Lisäämme arvon 1 soluun A1.

Koodi:

 Osamatriisi_esimerkki1 () himmennetty x kokonaislukuna x = 1 alue ("A1") .arvo = x 
 End Sub 

X-arvo on yhtä kuin 1 ja alueelle A1 arvo lisätään x: n arvoksi, ts. X: n arvo on 1. Suorita koodi nyt F5-näppäimellä tai tulokset manuaalisesti.

Yllä olevassa esimerkissä x: llä on vain yksi muuttuja, joka on kaikki. Mutta jos haluan lisätä 5 peräkkäistä numeroa käyttämällä yhtä muuttujaa, minun on käytettävä tyyppijärjestelmämuuttujaa, joka voi pitää useita muuttujien arvoja yhdessä muuttujan nimessä.

Esimerkki 2

Katsotaan nyt alla olevaa esimerkkiä. Muuttujan nimi on x ja tietotyyppi on LONG. Mutta ilmoittaessani itse muuttujaa olen avannut hakasulun ja maininnut 1-5. Tämä tarkoittaa, että muuttuja x pitää 5 erityyppistä arvoa.

Koodi:

 Osamatriisi_esimerkki () himmennettävä x (1 - 5) niin kauan, kun kokonaisluku loppuu alaosa 

Sen jälkeen olen määrittänyt arvot jokaiselle muuttujalle. X (1) = 20 tarkoittaa, että ensimmäisen muuttujan tulisi olla yhtä suuri kuin arvo 20. X (2) = 25 tarkoittaa, että toisen muuttujan tulisi olla yhtä suuri kuin arvo 25 ja niin edelleen.

Koodi:

 Alaryhmä_Esimerkki () Himma x (1 - 5) Niin kauan, i Kokonaislukuna x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Myöhemmin olen julistanut yhden muuttujan nimeltä “I”. Tämä on muuttujan toinen tyyppi ja sisältää kokonaisluvun datatyypin.

Seuraavassa vaiheessa olen hakenut FOR-silmukoita lisätäksesi määritetyt numerot taulukon ensimmäiseen sarakkeeseen. Olen asettanut muuttujan i arvoksi 1 ja olen määrännyt silmukan toimimaan 1-5 kertaa. Kun silmukka on käynnissä ensimmäistä kertaa, i- arvo on yhtä kuin 1. Solujen (I, 1) .arvo = x (i) tämä tarkoittaa, että ensimmäistä kertaa i on yhtä kuin 1 eli CELLS (1, 1) .arvo = x (1), ensimmäisen rivin ensimmäisessä sarakkeessa (solu A1) arvo on ensimmäisen taulukon ( x (1) ) arvo eli 20.

Kun silmukka toimii toisen kerran, i- arvosta tulee 2 eli CELLS (2, 1) .arvo = x (2), toisen rivin ensimmäisessä sarakkeessa (A2) arvo on toisen taulukon ( x (2) ) arvo eli 25.

Koodi:

 Osamatriisi_esimerkki () Himma x (1–5) Niin kauan, i Kokonaislukuna x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 i = 1 - 5 solua (i, 1) .Arvo = x (i) Seuraava i Loppu Sub 

Niin kuin silmukoiden jatkuessa, arvot muuttuvat jatkuvasti. Kun silmukat käyvät kolmannen kerran A3-solun arvo on 44, neljännen kerran silmukka suorittaa A4-solun arvo on 78, kun silmukat käyvät viimeistä kertaa tai viidennen kerran A5-solun arvo on 96.

Kun olet suorittanut koodin F5-näppäimellä tai manuaalisesti, saat tulokset alla esitetyllä tavalla.

Tyypit taulukot Excel

Matriiseja on erityyppisiä VBA: ssa. Excelissä on saatavana viittä tyyppiä taulukkoja.

  • Staattinen taulukko
  • Dynaaminen taulukko
  • Yksiulotteinen taulukko
  • Kaksiulotteinen ryhmä
  • Moniulotteinen taulukko

Staattinen taulukko

Tämän tyyppisissä ryhmissä ryhmän pituus määritetään etukäteen ja pysyy vakiona.

Koodi:

 Sub Static_Example () himmeä ArrayType (1 - 3) kokonaislukuna ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 solua (1, 1) .Value = ArrayType (1) Solut (1, 2) .Value = ArrayType (2) Solut (1, 3) .Value = ArrayType (3) End Sub 

Yllä olevassa koodissa ArrayType-pituus määritetään hyvissä ajoin 1 - 3 ja tietotyyppi on kokonaisluku.

Kun olet suorittanut koodin F5-näppäimellä tai manuaalisesti, saat tulokset alla esitetyllä tavalla.

Dynaaminen taulukko

Tämän tyyppisissä ryhmissä ryhmän pituutta ei määritetä ennalta hyvissä ajoin.

Koodi:

 Sub Dynamic_Example () Dim ArrayType () Variant ReDim ArrayType (3) ArrayType (1) = "My Name" ArrayType (2) = "is" ArrayType (3) = "Excel" Cells (1, 1) .Value = ArrayType (1) Solut (1, 2) .Value = ArrayType (2) Solut (1, 3) .Value = ArrayType (3) End Sub 

Tämän tyyppisissä matriisitiedoissa on variaatio ja pituutta ei määritetä tässä. Muuttujan ilmoittamisen jälkeen olen määrittänyt taulukon pituuden käyttämällä ReDim- toimintoa. Tämä taulukko lisää arvot kuten tämä Solu A1 = Oma nimi, Solu B1 = on, Solu C1 = Excel.

Yksiulotteinen taulukko

Tämän tyyppisissä ryhmissä pituus määritetään, mutta yhdessä ulottuvuudessa se toimii.

Koodi:

 Sub One_Dimensional () himmentää OneDimension (1–3) merkkijonona OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Näytä nämä arvot VBA-viestiruudussa.

Koodi:

 Sub One_Dimensional () himmentää OneDimension (1–3) merkkijonona OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) Loppuosa 

Suorita tämä koodi F5-näppäimellä tai manuaalisesti ja saat seuraavan tuloksen.

Kaksiulotteinen ryhmä

Tämän tyyppisissä ryhmissä pituus määritetään kahdessa ulottuvuudessa ja se toimii.

Koodi:

 Sub Kaksiulotteinen () Himmainen Kaksiulotteinen (1 - 2, 1 - 2) Niin kauan kuin Dim i Kokonaislukuina Dj j Kokonaislukuna Kaksiulotteinen (1, 2) = 40 Kaksiulotteinen (2, 1) = 50 Kaksiulotteinen (1, 1) = 15 Kaksiulotteinen (2, 2) = 10 lopussa alaosa 

Nyt tallentaa nämä arvot koodin alla oleviin soluihin.

Koodi:

 Sub Kaksiulotteinen () Himmainen Kaksiulotteinen (1 - 2, 1 - 2) Niin kauan kuin Dim i Kokonaislukuina Dj j Kokonaislukuna Kaksiulotteinen (1, 2) = 40 Kaksiulotteinen (2, 1) = 50 Kaksiulotteinen (1, 1) = 15 Kaksiulotteinen (2, 2) = 10 jos i = 1 - 2 j = 1 - 2 solua (i, j) = kaksiulotteinen (i, j) seuraava j seuraava i loppu Sub 

Tämä tallentaa tiedot kuten alla.

Moniulotteinen taulukko

Tämän tyyppisissä ryhmissä pituus määritetään, mutta moniulotteisena se toimii.

Koodi:

 Sub-moniulotteinen () himmentävä kaksiulotteinen (1 - 3, 1 - 2) niin kauan kuin himmeä i kuin kokonaisluku himmeä j kuin kokonaisluku moniulotteinen (1, 1) = 15 moniulotteinen (1, 2) = 40 moniulotteinen (2, 1) = 50 moniulotteinen (2, 2) = 10 moniulotteinen (3, 1) = 98 moniulotteinen (3, 2) = 54 

Jos tarkastelet ensin yllä olevaa koodia, olen ilmoittanut taulukon arvoksi 1–3 ja sitten 1–2. Tämä tarkoittaa, että kirjoittaessani taulukkoa ensin voin käyttää vain 1–3 numeroa, mutta toisessa tilassa voin käyttää vain 1 - 2 eikä 1 - 3.

Loop: n avulla voimme lisätä arvoja soluihin. Olen käyttänyt kahta silmukkaa moniulotteiseen taulukkoon.

Koodi:

 Sub-moniulotteinen () himmentävä kaksiulotteinen (1 - 3, 1 - 2) niin kauan kuin himmeä i kuin kokonaisluku himmeä j kuin kokonaisluku moniulotteinen (1, 1) = 15 moniulotteinen (1, 2) = 40 moniulotteinen (2, 1) = 50 moniulotteinen (2, 2) = 10 moniulotteinen (3, 1) = 98 moniulotteinen (3, 2) = 54 jos i = 1 - 3 jos j = 1 - 2 solua (i, j) = moniulotteinen (i, j) seuraava j Seuraava i loppu Sub 

Kun olet suorittanut koodin F5-näppäimellä tai manuaalisesti, saat tulokset alla esitetyllä tavalla.

Muistettavat asiat

  • Matriisi laskee arvot nollasta, ei yhdestä.
  • Taulukko (0, 0) tarkoittaa ensimmäisen rivin ensimmäistä saraketta.
  • Tämä excel-makrotiedosto on tallennettava makroa tukevana työkirjana.
  • Dynaamisen taulukon tapauksessa meidän on määritettävä taulukon arvo käyttämällä VBA: n REDIM-toimintoa.

Suositellut artikkelit

Tämä on opas VBA-ryhmiin. Tässä keskustelimme VBA-ryhmien tyypeistä ja siitä, kuinka Excel VBA -ryhmiä käytetään, sekä joitain käytännöllisiä esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Etsii toiminto Excelissä esimerkkien avulla
  2. Mikä on VBA-funktio Excelissä?
  3. Opas VBA Range -objektiin
  4. Kuinka käyttää VBA VLOOKUP -toimintoa?

Luokka: