Kako ReDim sačuvati 2D polje u programu Excel VBA (2 jednostavna načina)

  • Podijeli Ovo
Hugh West

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!

Hugh West vrlo je iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i financije te magistrirao poslovno upravljanje. Hugh ima strast za podučavanjem i razvio je jedinstveni pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno poznavanje programa Excel pomoglo je tisućama studenata i profesionalaca diljem svijeta da poboljšaju svoje vještine i postignu uspjeh u karijeri. Putem svog bloga, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne vodiče za Excel i online obuku kako bi pomogao pojedincima i tvrtkama da dostignu svoj puni potencijal.