Sadržaj
Niz je varijabla koja čuva iste vrste podataka. Ako postoji samo jedan redak ili jedan stupac podataka, tada je to poznato kao jednodimenzionalni niz. Međutim, kada postoji više od jednog retka i stupca, to se naziva 2D polje. Koristimo ReDim za promjenu veličine niza u VBA. Osim toga, koristimo ključnu riječ Preserve s ReDim kako bismo zadržali stare podatke netaknutima. Ovaj će vam članak pokazati 2 brza načina za “ ReDim Preserve ” 2D niz u Excel VBA .
Preuzmite radnu bilježnicu za vježbe
Macro to ReDim Preserve 2D.xlsm
2 praktična pristupa ReDim Preserve 2D Array u Excel VBA
Ovo je osnovni skup podataka stvoren iz 2D polja s tri retka i dva stupca. Prvo ćemo stvoriti ovaj niz. Zatim ćemo ovom nizu dodati još jedan stupac. Za to ćemo koristiti “ ReDim Preserve ”. Osim toga, pokazat ćemo što se događa ako ovo ne upotrijebimo.
Prema zadanim postavkama, možemo promijeniti samo veličinu posljednje dimenzije niza (tj. stupaca ili gornje granice). Transponirati ćemo niz, zatim promijeniti zadnju dimenziju, a zatim ponovno transponirati kako bismo promijenili veličinu obje dimenzije 2D niza u programu Excel VBA.
1 ReDim Preserve Last Dimension 2D Array
Prvo ćemo 2D array definirati kao dinamički. Zatim ćemo pomoću naredbe ReDim stvoritiniz s tri retka i dva stupca. Na kraju, ponovno ćemo upotrijebiti naredbu ReDim s Preserve ključnom riječi za povećajte gornju granicu dvodimenzionalnog niza.
Koraci:
- Za početak pritisnite ALT+F11 da biste otvorili prozor VBA Module . Alternativno, to možete učiniti na kartici Developer → odaberite Visual Basic .
- Zatim, iz Umetni karticu → odaberite Modul . Ovdje ćemo upisati VBA kod.
- Zatim upišite sljedeći kod u Modul prozor.
5736
Raščlamba VBA koda
- Prvo, pozivamo Podprocedura “ Redim_Preserve_2D_Array_Row ”.
- Zatim deklariramo varijablu Our_Array kao dinamičko polje.
- Dalje, definiramo veličinu niza. Donja granica je 3 , gornja granica je 2 , a obje počinju od 1 .
- Zatim dodjeljujemo vrijednosti nizu .
- Nakon toga unosimo vrijednosti u raspon ćelija C6:D8 .
- Nakon toga, će izvršiti kod.
- Dakle, Spremite Modul i pritisnite Pokreni .
- Kao rezultat, vratit će vrijednosti u definirane raspone ćelija. Možemo vidjeti da je “ Rachel ” u redu 1 i stupcu 1 na poziciji,koji je definiran kao ( 1,1 ) u VBA kodu.
- Sada ćemo promijeniti veličinu niza.
- Dakle, dodajte ovo prethodnom kodu i uklonite prvu Range.Value izjavu . Štoviše, kako kod izgleda možete vidjeti na snimci ispod.
1863
- Ovdje smo povećali gornju granicu od ( 1 Do 2 ) do ( 1 Do 3 ) prema 1 .
- Zatim smo dodali vrijednosti u niz.
- Sada ako izvršimo ovaj kod, vidjet ćemo da prethodne vrijednosti nisu sačuvane. Vratit će prazno za prethodne vrijednosti.
- Sada to možemo popraviti dodavanjem Sačuvaj ključnu riječ u Izjava ReDim .
- Konačno, naš puni kod će biti ovaj.
5820
- Sada, ako Pokrenite ovaj kod, tada će izlaz biti ovakav. Stoga ćemo “ ReDim Preserve ” posljednju dimenziju 2D polja u Excel VBA.. Sada, sljedeća metoda će vam pokazati kako “ ReDim Preserve ” i promijenite veličinu obje dimenzije niza.
Pročitajte više: VBA za postizanje jedinstvenosti Vrijednosti iz stupca u niz u Excelu (3 kriterija)
Slična čitanja
- Kako imenovati niz tablice u Excelu (s Jednostavni koraci)
- Excel VBA za čitanje CSV datoteke u niz (4 idealna primjera)
- Kako pretvoriti raspon u niz u ExceluVBA (3 načina)
- Excel VBA: Uklonite duplikate iz niza (2 primjera)
2. ReDim Očuvajte obje dimenzije 2D niza u Excel VBA
U ovoj konačnoj metodi, pokazat ćemo vam korake za promjenu veličine i “ ReDim Preserve ” 2D niza . Ovdje ćemo koristiti funkciju VBA Transpose za promjenu veličine donje granice niza. Ako smo pokušali promijeniti veličinu donje granice niza u prvoj metodi, vidjet ćemo pogrešku “ Subscript out of range ”. Sada, bez daljnjeg odlaganja, da vidimo kako to možemo popraviti i postići naš cilj.
Koraci:
- Prvo, kao što je prikazano u prvoj metodi , pokrenite prozor Modul .
- Drugo, dodajte sljedeće retke koda u prvi kod.
2152
- Štoviše, kod za konačnu metodu izgleda ovako.
5842
Raščlamba VBA koda
- Prvo, pozivamo Podproceduru “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
- Tada su ostali kodovi do funkcije VBA Transpose isti kao u prvom kodu.
- Ovdje, mi transponiraju niz.
- Zatim povećavamo gornju granicu niza.
- Nakon toga ponovno transponiramo niz. Stoga će u konačnici promijeniti donju granicu.
- Dalje, unosimo vrijednosti za niz promijenjene veličine dokčuvajući stare podatke.
- Na kraju, zapisujemo vrijednosti u raspon ćelija C6:E9 .
- Nakon da, kao što je prikazano u prvoj metodi , pokreni ovaj kod.
- Dakle, možemo vizualizirati kako kod čuva 2D niz koristeći “ ReDim Preserve ” i funkciju VBA Transpose .
Pročitajte više: VBA za prijenos polja u Excelu (3 metode)
Stvari koje treba zapamtiti
- ReDim Preserve ne može promijeniti donju granicu niza. Da bismo to učinili, moramo koristiti funkciju Transpose .
- Možemo koristiti samo ReDim na dinamičkim nizovima.
Zaključak
Pokazali smo vam dva brza načina za “ ReDim Preserve ” 2D niz u Excel VBA. Ako imate bilo kakvih problema u vezi s ovim metodama ili imate povratne informacije za mene, slobodno komentirajte ispod. Štoviše, možete posjetiti našu stranicu ExcelWIKI za više članaka vezanih uz Excel. Hvala na čitanju, nastavite biti izvrsni!