Paano I-reDim Preserve ang 2D Array sa Excel VBA (2 Easy Ways)

  • Ibahagi Ito
Hugh West

Ang array ay isang variable na nagpapanatili ng parehong mga uri ng data. Kung mayroon lamang isang row o isang column ng data, ito ay kilala bilang isang one-dimensional array. Gayunpaman, kapag mayroong higit sa isang row at column, ito ay tinatawag na 2D array. Ginagamit namin ang ReDim upang baguhin ang laki ng array sa VBA. Bukod pa rito, ginagamit namin ang Preserve keyword na may ReDim upang panatilihing buo ang lumang data. Ipapakita sa iyo ng artikulong ito ang 2 mabilis na paraan upang “ ReDim Preserve ” isang 2D array sa Excel VBA .

I-download ang Workbook ng Practice

Macro to ReDim Preserve 2D.xlsm

2 Madaling Paglapit sa ReDim Preserve 2D Array sa Excel VBA

Ito ang base dataset na ginawa mula sa isang 2D array na may tatlong row at dalawang column. Una, gagawa kami ng array na ito. Pagkatapos, magdaragdag kami ng isa pang column sa array na ito. Gagamitin namin ang “ ReDim Preserve ” para gawin ito. Bukod pa rito, ipapakita namin kung ano ang mangyayari kung hindi namin ito gagamitin.

Bilang default, maaari lang naming baguhin ang laki ng huling dimensyon ng array (ibig sabihin, ang mga column o ang upper bound). I-transpose namin ang array, pagkatapos ay baguhin ang huling dimensyon, at pagkatapos ay i-transpose muli upang palitan ang laki ng parehong dimensyon ng 2D array sa Excel VBA.

1 ReDim Preserve Last Dimension 2D Array

Tutukuyin muna namin ang 2D array bilang dynamic. Pagkatapos, gamit ang ReDim na pahayag, gagawa kami ng isangarray na may tatlong row at dalawang column. Panghuli, gagamitin namin muli ang ReDim na pahayag kasama ang Preserve keyword sa taasan ang upper bound ng two dimensional array.

Mga Hakbang:

  • Upang magsimula, pindutin ang ALT+F11 upang ilabas ang VBA Module window. Bilang kahalili, magagawa mo ito mula sa tab na Developer →  piliin ang Visual Basic .
  • Pagkatapos, mula sa Ipasok ang tab → piliin ang Module . Ita-type namin ang VBA code dito.

  • Susunod, i-type ang sumusunod na code sa Module window.
4329

VBA Code Breakdown

  • Una, kami ay tumatawag ang Sub procedure Redim_Preserve_2D_Array_Row ”.
  • Pagkatapos, idinedeklara namin ang variable na Our_Array bilang isang dynamic na array.
  • Susunod, tinutukoy namin ang laki ng array. Ang lower bound ay 3 , ang upper bound ay 2 , at parehong nagsisimula sa 1 .
  • Pagkatapos, nagtatalaga kami ng mga value sa array .
  • Pagkatapos nito, inilalagay namin ang mga value sa C6:D8 cell range.
  • Pagkatapos nito, kami ipapatupad ang code.
  • Kaya, I-save ang Module at pindutin ang Run .

  • Bilang resulta, ibabalik nito ang mga halaga sa tinukoy na mga hanay ng cell. Makikita natin na ang “ Rachel ” ay nasa row 1 at column 1 na posisyon,na tinukoy bilang ( 1,1 ) sa VBA code.

  • Ngayon, babaguhin natin ang array.
  • Kaya, idagdag ito sa nakaraang code at alisin ang unang Range.Value statement . Bukod dito, kung ano ang hitsura ng code na makikita mo mula sa snapshot sa ibaba.
4736

  • Dito, tinaasan namin ang upper bound mula sa ( 1 Hanggang 2 ) hanggang ( 1 Hanggang 3 ) ni 1 .
  • Pagkatapos, idinagdag namin ang mga halaga sa array.
  • Ngayon kung ipapatupad namin ang code na ito, makikita namin na ang mga nakaraang halaga ay hindi napanatili. Magbabalik itong blangko para sa mga nakaraang value.

  • Ngayon, maaayos natin ito sa pamamagitan ng pagdaragdag ng Preserve keyword sa ReDim statement .
  • Sa wakas, ang aming buong code ay ito.
4527

  • Ngayon, kung kami Patakbuhin ang code na ito, pagkatapos ay magiging ganito ang output. Kaya, " ReDim Preserve " ang huling dimensyon ng isang 2D array sa Excel VBA.. Ngayon, ipapakita sa iyo ng susunod na paraan kung paano " ReDim Panatilihin ” at i-resize ang parehong dimensyon ng array.

Magbasa Nang Higit Pa: VBA Upang Maging Natatangi Mga Halaga mula sa Column papunta sa Array sa Excel (3 Pamantayan)

Mga Katulad na Pagbasa

  • Paano Pangalanan ang isang Table Array sa Excel (Na may Mga Madaling Hakbang)
  • Excel VBA para Basahin ang CSV File sa Array (4 Ideal na Halimbawa)
  • Paano I-convert ang Range sa Array sa ExcelVBA (3 Ways)
  • Excel VBA: Alisin ang mga Duplicate mula sa isang Array (2 Halimbawa)

2. ReDim Preserve both Dimensions 2D Array in Excel VBA

Sa panghuling pamamaraang ito, ipapakita namin sa iyo ang mga hakbang para baguhin ang laki at “ ReDim Preserve ” ang 2D array . Dito, gagamitin natin ang function na VBA Transpose para i-resize ang lower bound ng array. Kung sinubukan naming i-resize ang lower bound ng array sa unang paraan, makikita namin ang error na " Subscript out of range ". Ngayon, nang walang karagdagang abala, tingnan natin kung paano natin ito maaayos at makamit ang ating layunin.

Mga Hakbang:

  • Una, tulad ng ipinapakita sa unang paraan , ilabas ang Module na window.
  • Pangalawa, idagdag ang mga sumusunod na linya ng code sa unang code.
3936
  • Bukod dito, ganito ang hitsura ng code para sa panghuling paraan.
1392

Breakdown ng VBA Code

  • Una, tinatawag namin ang Sub procedure na “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
  • Pagkatapos, ang natitirang mga code hanggang sa VBA Transpose function ay pareho sa unang code.
  • Narito, kami ay nililipat ang array.
  • Pagkatapos, dinaragdagan namin ang upper bound ng array.
  • Pagkatapos nito, inilipat namin muli ang array. Samakatuwid, sa huli, babaguhin nito ang lower bound.
  • Susunod, ilalagay namin ang mga value para sa na-resize na array habangpinapanatili ang lumang data.
  • Panghuli, isinusulat namin ang mga value sa hanay ng cell C6:E9 .
  • Pagkatapos na, tulad ng ipinapakita sa unang paraan , Patakbuhin ang code na ito.
  • Sa gayon, makikita natin kung paano pinapanatili ng code ang isang 2D array gamit ang “ ReDim Preserve ” at ang VBA Transpose function.

Magbasa Nang Higit Pa: VBA to Transpose Array sa Excel (3 Paraan)

Mga Dapat Tandaan

    ReDim Preserve ang lower bound ng array. Para magawa ito, kailangan naming gamitin ang function na Transpose .
  • Maaari lang naming gamitin ang ReDim sa mga dynamic na array.

Konklusyon

Nagpakita kami sa iyo ng dalawang mabilis na paraan upang “ ReDim Preserve ” isang 2D array sa Excel VBA. Kung nahaharap ka sa anumang mga problema tungkol sa mga pamamaraang ito o may anumang puna para sa akin, huwag mag-atubiling magkomento sa ibaba. Bukod dito, maaari mong bisitahin ang aming site ExcelWIKI para sa higit pang mga artikulong nauugnay sa Excel. Salamat sa pagbabasa, patuloy na galingan!

Si Hugh West ay isang napakaraming Excel trainer at analyst na may higit sa 10 taong karanasan sa industriya. May hawak siyang Bachelor's degree sa Accounting and Finance at Master's degree sa Business Administration. Si Hugh ay may hilig sa pagtuturo at nakabuo ng kakaibang diskarte sa pagtuturo na madaling sundin at maunawaan. Ang kanyang dalubhasang kaalaman sa Excel ay nakatulong sa libu-libong mag-aaral at propesyonal sa buong mundo na mapabuti ang kanilang mga kasanayan at maging mahusay sa kanilang mga karera. Sa pamamagitan ng kanyang blog, ibinahagi ni Hugh ang kanyang kaalaman sa mundo, nag-aalok ng mga libreng Excel tutorial at online na pagsasanay upang matulungan ang mga indibidwal at negosyo na maabot ang kanilang buong potensyal.