Змест
Масіў - гэта зменная, якая захоўвае аднолькавыя тыпы даных. Калі ёсць толькі адзін радок або адзін слупок дадзеных, то гэта вядома як аднамерны масіў. Аднак, калі ёсць больш чым адзін радок і слупок, гэта называецца 2D масіў. Мы выкарыстоўваем ReDim для змены памеру масіва ў VBA. Акрамя таго, мы выкарыстоўваем ключавое слова Preserve з ReDim , каб захаваць старыя даныя некранутымі. Гэты артыкул пакажа вам 2 хуткія спосабы “ ReDim Preserve ” 2D масіў у Excel VBA .
Спампаваць практычны сшытак
Macro to ReDim Preserve 2D.xlsm
2 Handy Approaces to ReDim Preserve 2D Array у Excel VBA
Гэта базавы набор даных, створаны з 2D масіва з трыма радкамі і двума слупкамі. Спачатку мы створым гэты масіў. Затым мы дадамо яшчэ адзін слупок у гэты масіў. Для гэтага мы будзем выкарыстоўваць « ReDim Preserve ». Акрамя таго, мы прадэманструем, што адбудзецца, калі мы не выкарыстоўваем гэта.
Па змаўчанні мы можам змяніць памер толькі апошняга вымярэння масіва (г.зн. слупкоў або верхняй мяжы). Мы транспануем масіў, затым зменім апошняе вымярэнне, а потым зноў транспануем, каб змяніць памер абодвух вымярэнняў 2D масіва ў Excel VBA.
1 ReDim Захаваць апошні памер 2D масіва
Спачатку мы вызначым 2D масіў як дынамічны. Затым, выкарыстоўваючы аператар ReDim , мы створыммасіў з трох радкоў і двух слупкоў. Нарэшце, мы зноў будзем выкарыстоўваць аператар ReDim з ключавым словам Preserve , каб павялічыць верхнюю мяжу двухмернага масіва.
Крокі:
- Для пачатку націсніце ALT+F11 , каб выклікаць акно VBA Module . Акрамя таго, вы можаце зрабіць гэта на ўкладцы Распрацоўшчык → абярыце Visual Basic .
- Затым з Уставіць табуляцыю → выбраць Модуль . Тут мы ўвядзем код VBA.
- Далей увядзіце наступны код у Модуль акно.
4186
Разбор кода VBA
- Па-першае, мы тэлефануем Падпрацэдура “ Redim_Preserve_2D_Array_Row ”.
- Затым мы аб'яўляем зменную Our_Array як дынамічны масіў.
- Далей мы вызначаем памер масіва. Ніжняя мяжа роўная 3 , верхняя мяжа роўная 2 , і абедзве пачынаюцца з 1 .
- Затым мы прысвойваем значэнні масіву .
- Пасля гэтага мы ўводзім значэнні ў дыяпазон ячэек C6:D8 .
- Пасля гэтага мы выканае код.
- Такім чынам, Захавайце Модуль і націсніце Выканаць .
- У выніку ён верне значэнні ў вызначаныя дыяпазоны вочак. Мы бачым, што « Рэйчал » знаходзіцца ў радку 1 і слупку 1 ,які быў вызначаны як ( 1,1 ) у кодзе VBA.
- Цяпер мы зменім памер масіва.
- Такім чынам, дадайце гэта да папярэдняга кода і выдаліце першы Аператар Range.Value . Больш за тое, як выглядае код, можна ўбачыць на здымку ніжэй.
5611
- Тут мы павялічылі верхнюю мяжу з ( 1 Да 2 ) да ( 1 Да 3 ) на 1 .
- Затым мы дадалі значэнні ў масіў.
- Зараз, калі мы выканаем гэты код, мы ўбачым, што папярэднія значэнні не захаваліся. Ён верне пустое для папярэдніх значэнняў.
- Цяпер мы можам выправіць гэта, дадаўшы Захаваць ключавое слова ў Аператар ReDim .
- Нарэшце, наш поўны код будзе такім.
9067
- Цяпер, калі мы Запусціце гэты код, тады вывад будзе такім. Такім чынам, мы будзем “ ReDim Preserve ” апошняе вымярэнне 2D масіва ў Excel VBA. Цяпер наступны метад пакажа вам, як “ ReDim Захаваць ” і змяніць памеры абодвух вымярэнняў масіва.
Больш падрабязна: VBA для атрымання унікальнасці Значэнні са слупка ў масіў у Excel (3 крытэрыі)
Падобныя паказанні
- Як назваць масіў табліцы ў Excel (з Лёгкія крокі)
- Excel VBA для чытання файла CSV у масіў (4 ідэальныя прыклады)
- Як пераўтварыць дыяпазон у масіў у ExcelVBA (3 спосабы)
- Excel VBA: выдаленне дублікатаў з масіва (2 прыклады)
2. ReDim. Захаванне абодвух вымярэнняў 2D масіва ў Excel VBA
У гэтым апошнім метадзе мы пакажам вам крокі па змене памеру і « ReDim Preserve » 2D масіва . Тут мы будзем выкарыстоўваць функцыю VBA Transpose для змены памеру ніжняй мяжы масіва. Калі мы паспрабуем змяніць памер ніжняй мяжы масіва ў першым метадзе, то ўбачым памылку « Індэкс па-за дыяпазонам ». Зараз, без лішніх слоў, давайце паглядзім, як мы можам гэта выправіць і дасягнуць нашай мэты.
Крокі:
- Па-першае, як паказана ў першым метадзе , адкрыйце акно Модуль .
- Па-другое, дадайце наступныя радкі кода ў першы код.
7064
- Больш таго, код канчатковага метаду выглядае так.
5027
Разбіўка кода VBA
- Па-першае, мы выклікаем падпрацэдуру “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
- Затым астатнія коды да функцыі VBA Transpose такія ж, як і ў першым кодзе.
- Тут мы транспануюць масіў.
- Затым мы павялічваем верхнюю мяжу масіва.
- Пасля гэтага мы зноў транспануем масіў. Такім чынам, у канчатковым выніку гэта зменіць ніжнюю мяжу.
- Далей мы ўводзім значэнні для змененага памеру масіва, пакульзахоўваючы старыя дадзеныя.
- Нарэшце, мы запісваем значэнні ў дыяпазон вочак C6:E9 .
- Пасля што, як паказана ў першым метадзе , запусціце гэты код.
- Такім чынам, мы можам уявіць, як код захоўвае Двухмерны масіў з дапамогай функцыі « ReDim Preserve » і функцыі VBA Transpose .
Больш падрабязна: VBA для транспанавання масіва ў Excel (3 метады)
Што трэба памятаць
- ReDim Preserve не можа змяніць ніжнюю мяжу масіва. Для гэтага нам трэба выкарыстоўваць функцыю Transpose .
- Мы можам выкарыстоўваць толькі ReDim для дынамічных масіваў.
Выснова
Мы паказалі вам два хуткія спосабы « ReDim Preserve » 2D масіў у Excel VBA. Калі вы сутыкнуліся з якімі-небудзь праблемамі з гэтымі метадамі або ў вас ёсць якія-небудзь водгукі для мяне, не саромейцеся каментаваць ніжэй. Акрамя таго, вы можаце наведаць наш сайт ExcelWIKI , каб знайсці больш артыкулаў, звязаных з Excel. Дзякуй за чытанне, працягвайце выдатныя вынікі!