Dynaaminen matriisi Excel VBA: ssa - helppoja Excel -makroja

Sisällysluettelo

Jos taulukon koko kasvaa ja et halua korjata taulukon kokoa, voit käyttää ReDim -avainsana. Excel VBA muuttaa sitten taulukon kokoa automaattisesti.

Lisää joitakin numeroita sarakkeeseen A.

Aseta komentopainike laskentataulukkoosi ja lisää seuraavat koodirivit:

1. Ensin julistamme taulukon nimeltä numerot. Ilmoita myös kaksi Integer -tyyppistä muuttujaa. Yksi nimetty koko ja yksi nimeltä i.

Dim -numerot () kokonaislukuna, koko kokonaislukuna ja i kokonaislukuna

Huomaa: taulukolla ei ole vielä kokoa. numerot, koko ja minä valitaan satunnaisesti, voit käyttää mitä tahansa nimeä. Muista viitata näihin nimiin koodin loppuosassa.

2. Seuraavaksi määritämme taulukon koon ja tallennamme sen muuttuvaan kokoon. Voit käyttää tähän laskentataulukkofunktiota CountA. Lisää seuraava koodirivi:

size = WorksheetFunction.CountA (laskentataulukot (1). sarakkeet (1))

3. Tiedämme nyt taulukon koon ja voimme muuttaa sen kokoa. Lisää seuraava koodirivi:

ReDim -numerot (koko)

4. Seuraavaksi alustamme jokaisen taulukon elementin. Käytämme silmukkaa.

I = 1 Koko
luvut (i) = Solut (i, 1). Arvo
Seuraavaksi minä

5. Näytämme taulukon viimeisen elementin käyttämällä MsgBoxia.

MsgBox -numerot (koko)

6. Sulje Visual Basic Editor ja napsauta taulukon komentopainiketta.

Tulos:

7. Jos haluat nähdä selvästi, miksi tätä kutsutaan dynaamiseksi matriisiksi, lisää sarakkeeseen A luku.

8. Napsauta komentopainiketta uudelleen.

Johtopäätös: Excel VBA on muuttanut automaattisesti tämän dynaamisen taulukon kokoa.

9. Kun käytät ReDim -avainsanaa, poistat kaikki nykyiset taulukkoon tallennetut tiedot. Lisää esimerkiksi seuraavat koodirivit aiemmin luotuun koodiin:

ReDim -numerot (3)
MsgBox -numerot (1)

Tulos:

Taulukko on tyhjä.

10. Jos haluat säilyttää olemassa olevan taulukon tiedot, kun muutat sitä, käytä Säilytä -avainsanaa.

ReDim Säilytä numerot (3)
MsgBox -numerot (1)

Tulos:

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave