Kako ponovo zatamniti sačuvati 2D niz u Excel VBA (2 jednostavna načina)

  • Podijeli Ovo
Hugh West

Niz je varijabla koja čuva iste vrste podataka. Ako postoji samo jedan red ili jedna kolona podataka, onda je to poznato kao jednodimenzionalni niz. Međutim, kada postoji više od jednog reda i stupca, to se naziva 2D niz. Koristimo ReDim za promjenu veličine niza u VBA. Osim toga, koristimo Preserve ključnu riječ sa ReDim da zadržimo stare podatke netaknute. Ovaj članak će vam pokazati 2 brza načina za “ ReDim Preserve 2D niz u Excel VBA .

Preuzmite Vježnicu

Makro za ReDim Preserve 2D.xlsm

2 zgodna pristupa ReDim Preserve 2D niz u Excel VBA

Ovo je osnovni skup podataka kreiran iz 2D niza sa tri reda i dvije kolone. Prvo ćemo kreirati ovaj niz. Zatim ćemo ovom nizu dodati još jednu kolonu. Za to ćemo koristiti “ ReDim Preserve ”. Osim toga, pokazat ćemo šta se događa ako ovo ne koristimo.

Podrazumevano, možemo promijeniti veličinu samo posljednje dimenzije niza (tj. stupaca ili gornje granice). Transponirati ćemo niz, zatim promijeniti posljednju dimenziju, a zatim ponovo transponirati da promijenimo veličinu obje dimenzije 2D niza u Excel VBA.

1 ReDim Preserve Last Dimension 2D Array

Prvo ćemo definirati 2D niz kao dinamički. Zatim ćemo, koristeći ReDim naredbu, kreiratiniz sa tri reda i dvije kolone. Na kraju, ponovo ćemo koristiti naredbu ReDim sa Preserve ključnom riječi za povećajte gornju granicu dvodimenzionalnog niza.

Koraci:

  • Za početak pritisnite ALT+F11 za otvaranje prozora VBA Modul . Alternativno, ovo možete učiniti na kartici Developer →  odaberite Visual Basic .
  • Zatim, iz Insert tab → odaberite Module . Ovdje ćemo upisati VBA kod.

  • Sljedeće unesite sljedeći kod u Module prozor.
4490

VBA Code Breakdown

  • Prvo, zovemo Sub procedura Redim_Preserve_2D_Array_Row ”.
  • Zatim, deklariramo varijablu Our_Array kao dinamički niz.
  • 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, mi će izvršiti kod.
  • Dakle, Sačuvaj Modul i pritisnite Pokreni .

  • Kao rezultat, vratit će vrijednosti definiranim rasponima ćelija. Možemo vidjeti da je “ Rachel ” u redu 1 i stupcu 1 poziciji,koji je definisan kao ( 1,1 ) u VBA kodu.

  • Sada ćemo promijeniti veličinu niza.
  • Dakle, dodajte ovo u prethodni kod i uklonite prvi Range.Value izraz . Štaviše, kako izgleda kod možete vidjeti na snimku ispod.
6169

  • Ovdje smo povećali gornju granicu od ( 1 Do 2 ) do ( 1 Do 3 ) od 1 .
  • Onda 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, ovo možemo popraviti dodavanjem Preserve keyword u ReDim izjava .
  • Konačno, naš puni kod će biti ovaj.
9988

  • Sada, ako Pokreni ovaj kod, onda će izlaz biti ovakav. Stoga ćemo “ ReDim Preserve ” posljednju dimenziju 2D niza u Excel VBA.. Sada, sljedeća metoda će vam pokazati kako da “ ReDim Sačuvajte ” i promijenite veličinu obje dimenzije niza.

Pročitajte više: VBA da postanete jedinstveni Vrijednosti iz kolone u niz u Excelu (3 kriterija)

Slična očitanja

  • Kako imenovati niz tablice u Excelu (sa 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: Ukloni duplikate iz niza (2 primjera)

2. ReDim Očuva 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 VBA Transpose funkciju za promjenu veličine donje granice niza. Ako smo pokušali da promijenimo veličinu donje granice niza u prvoj metodi, tada ćemo vidjeti grešku “ Subscript out of range ”. Sada, bez daljnjeg, da vidimo kako to možemo popraviti i postići naš cilj.

Koraci:

  • Prvo, kao što je prikazano u prvoj metodi , otvorite prozor Modul .
  • Drugo, dodajte sljedeće linije koda u prvi kod.
1800
  • Štaviše, kod za konačni metod izgleda ovako.
9115

VBA Code Breakdown

  • Prvo, zovemo Sub proceduru ReDim_Preserve_2D_Array_Both_Dimensions ” .
  • Onda, ostali kodovi do VBA Transpose funkcije su isti kao u prvom kodu.
  • Ovdje, mi transponuju niz.
  • Zatim, povećavamo gornju granicu niza.
  • Nakon toga, ponovo transponujemo niz. Stoga će na kraju promijeniti donju granicu.
  • Sljedeće unosimo vrijednosti za promijenjenu veličinu niza dokčuvajući stare podatke.
  • Na kraju, upisujemo 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 VBA Transpose funkciju.

Pročitajte više: VBA za transponovanje niza u Excel (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 bilo kakve povratne informacije za mene, slobodno komentirajte ispod. Osim toga, možete posjetiti našu stranicu ExcelWIKI za više članaka vezanih za Excel. Hvala na čitanju, nastavite da se ističete!

Hugh West je vrlo iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i finansije i magistrirao poslovnu administraciju. Hugh ima strast prema podučavanju i razvio je jedinstven pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno znanje o Excel-u pomoglo je hiljadama studenata i profesionalaca širom svijeta da poboljšaju svoje vještine i napreduju u karijeri. Kroz svoj blog, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne Excel tutorijale i online obuku kako bi pomogli pojedincima i preduzećima da ostvare svoj puni potencijal.