Hoe kinne jo ReDim 2D Array bewarje yn Excel VBA (2 maklike manieren)

  • Diel Dit
Hugh West

In array is in fariabele dy't deselde soarten gegevens hâldt. As d'r mar ien rige of ien kolom fan gegevens is, dan is it bekend as in iendiminsjonale array. As d'r lykwols mear as ien rige en kolom binne, wurdt it in 2D-array neamd. Wy brûke ReDim om de grutte fan in array yn VBA te feroarjen. Derneist brûke wy it Bewarje -kaaiwurd mei de ReDim om de âlde gegevens yntakt te hâlden. Dit artikel sil jo 2 snelle manieren sjen litte om " ReDim Preserve " in 2D-array yn Excel VBA .

Oefeningswurkboek downloade

Macro to ReDim Preserve 2D.xlsm

2 Handy Approaches to ReDim Preserve 2D Array yn Excel VBA

Dit is de basis dataset makke fan in 2D array mei trije rigen en twa kolommen. Earst sille wy dizze array oanmeitsje. Dan sille wy in oare kolom tafoegje oan dizze array. Wy sille de " ReDim Preserve " brûke om dit te dwaan. Derneist sille wy demonstrearje wat der bart as wy dit net brûke.

Standert kinne wy ​​allinich de grutte fan 'e lêste diminsje fan' e array feroarje (dus de kolommen of de boppegrins). Wy sille de array transponearje, dan de lêste diminsje feroarje, en dan wer transponearje om beide dimensjes fan 'e 2D-array yn Excel VBA te feroarjen.

1 ReDim Preserve Last Dimension 2D Array

Wy sille earst de 2D-array as dynamysk definiearje. Dan, mei de ReDim statement, sille wy inarray mei trije rigen en twa kolommen. As lêste sille wy de ReDim -statement nochris brûke mei it Preserve kaaiwurd om fergrutsje de boppegrins fan de twa-diminsjonale array.

Stappen:

  • Om te begjinnen, druk op ALT+F11 om it finster VBA Module op te heljen. As alternatyf kinne jo dit dwaan fan it ljepblêd ûntwikkelder →  selektearje Visual Basic .
  • Dan, fanút de Ynfoegje ljepper → selektearje Module . Wy sille hjir de VBA-koade ynfiere.

  • Fier dêrnei de folgjende koade yn de Module finster.
5925

VBA Code Breakdown

  • Earst belje wy de Subproseduere " Redim_Preserve_2D_Array_Row ".
  • Dan ferklearje wy de fariabele Our_Array as in dynamyske array.
  • Folgjende definiearje wy de grutte fan 'e array. De ûndergrins is 3 , de boppegrins is 2 , en beide begjinne fan 1 .
  • Dan jouwe wy wearden ta oan de array .
  • Dêrnei ynfiere wy de wearden yn it C6:D8 selberik.
  • Dêrnei sille wy sil de koade útfiere.
  • Dus, Bewarje de Module en druk op Utfiere .

  • As gefolch sil it de wearden werombringe nei de definieare selbereiken. Wy kinne sjen dat " Rachel " is yn rige 1 en kolom 1 posysje,dat waard definiearre as ( 1,1 ) yn 'e VBA-koade.

  • No sille wy de grutte fan 'e array feroarje.
  • Dus, foegje dit ta oan 'e foarige koade en ferwiderje de earste Range.Value statement . Boppedat, hoe't de koade derút sjocht kinne jo sjen fan 'e snapshot hjirûnder.
5968

  • Hjir hawwe wy de boppegrins ferhege fan ( 1 Nei 2 ) oant ( 1 Oan 3 ) troch 1 .
  • Dan hawwe wy de wearden tafoege oan de array.
  • No as wy dizze koade útfiere, dan sille wy sjen dat de foarige wearden net bewarre wurde. It sil leech weromjaan foar de foarige wearden.

  • No kinne wy ​​dit reparearje troch it Bewarje kaaiwurd ta te foegjen yn de ReDim statement .
  • Ut lêst sil ús folsleine koade dit wêze.
3406

  • No, as wy Run dizze koade, dan sil de útfier sa wêze. Sa sille wy " ReDim Preserve " de lêste diminsje fan in 2D array yn Excel VBA.. No, de folgjende metoade sil jo sjen litte hoe't jo " ReDim kinne Bewarje " en feroarje de grutte fan beide dimensjes fan 'e array.

Lês mear: VBA om unyk te krijen Wearden fan kolom nei array yn Excel (3 kritearia)

Fergelykbere lêzingen

  • Hoe kinne jo in tabelarray neame yn Excel (mei Maklike stappen)
  • Excel VBA om CSV-bestân yn array te lêzen (4 ideale foarbylden)
  • Hoe kinne jo berik nei array konvertearje yn ExcelVBA (3 manieren)
  • Excel VBA: Duplikaten fan in array fuortsmite (2 foarbylden)

2. ReDim Bewarje beide dimensjes 2D-array yn Excel VBA

Yn dizze lêste metoade sille wy jo de stappen sjen litte om de grutte te feroarjen en " ReDim Preserve " de 2D-array . Hjir sille wy de funksje VBA Transpose brûke om de legere grins fan 'e array te feroarjen. As wy besocht de grutte fan 'e legere grins fan' e array yn 'e earste metoade te feroarjen, dan sille wy de flater " Subscript out of range " sjen. No, sûnder fierdere ado, lit ús sjen hoe't wy dit kinne reparearje en ús doel berikke.

Stappen:

  • Allearst, lykas werjûn yn de earste metoade , bring it finster Module op.
  • Twadde, foegje de folgjende rigels fan koade ta yn de earste koade.
9000
  • Boppedat sjocht de koade foar de lêste metoade der sa út.
1973

VBA Code Breakdown

  • Earst neame wy de Subproseduere " ReDim_Preserve_2D_Array_Both_Dimensions " .
  • Dan binne de rest fan de koades oant de VBA Transpose funksje itselde as yn de earste koade.
  • Hjir, wy binne de array te transponearjen.
  • Dan ferheegje wy de boppegrins fan de array.
  • Dêrnei transponearje wy de array wer. Dêrom sil it úteinlik de legere grins feroarje.
  • Dêrnei ynfiere wy de wearden foar de wizige array wylstbehâld fan de âlde gegevens.
  • Op it lêst skriuwe wy de wearden nei it selberik C6:E9 .
  • Nei dat, lykas werjûn yn 'e earste metoade , Run dizze koade.
  • Sa kinne wy ​​sjen hoe't de koade in behâldt 2D array mei de " ReDim Preserve " en de VBA Transpose funksje.

Lês mear: VBA om array yn Excel te transponearjen (3 metoaden)

Dingen om te ûnthâlden

  • ReDim Preserve kin de legere grins fan 'e array net feroarje. Om dit te dwaan moatte wy de funksje Transpose brûke.
  • Wy kinne ReDim allinnich brûke op dynamyske arrays.

Konklúzje

Wy hawwe jo twa rappe manieren sjen litten om " ReDim Preserve " in 2D array yn Excel VBA. As jo ​​​​problemen hawwe oangeande dizze metoaden of feedback foar my hawwe, fiel jo frij om hjirûnder kommentaar te jaan. Boppedat kinne jo ús side besykje ExcelWIKI foar mear Excel-relatearre artikels. Tank foar it lêzen, bliuw útblinke!

Hugh West is in tige betûfte Excel-trainer en analist mei mear as 10 jier ûnderfining yn 'e yndustry. Hy hat in bachelorstitel yn boekhâlding en finânsjes en in masterstitel yn bedriuwsadministraasje. Hugh hat in passy foar lesjaan en hat in unike lesoanpak ûntwikkele dy't maklik te folgjen en te begripen is. Syn saakkundige kennis fan Excel hat tûzenen studinten en professionals wrâldwiid holpen har feardigens te ferbetterjen en útblinke yn har karriêre. Troch syn blog dielt Hugh syn kennis mei de wrâld, en biedt fergese Excel-tutorials en online training om partikulieren en bedriuwen te helpen har folsleine potensjeel te berikken.