Talaan ng nilalaman
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
- 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!