Содржина
Низа е променлива која ги чува истите видови на податоци. Ако има само еден ред или една колона со податоци, тогаш тоа е познато како еднодимензионална низа. Меѓутоа, кога има повеќе од еден ред и колона, тоа се нарекува 2D низа. Ние користиме ReDim за промена на големината на низата во VBA. Дополнително, го користиме клучниот збор Зачувај со ReDim за да ги задржиме старите податоци недопрени. Оваа статија ќе ви покаже 2 брзи начини за „ ReDim Reserve “ 2D низа во Excel VBA .
Преземете ја работната книга за вежбање
Macro to ReDim Reserve 2D.xlsm
2 практични пристапи за ReDim Preserve 2D Array во Excel VBA
Ова е основната база на податоци создадена од 2D низа со три реда и две колони. Прво, ќе ја создадеме оваа низа. Потоа, ќе додадеме уште една колона на оваа низа. Ќе го користиме „ ReDim Reserve “ за да го сториме тоа. Дополнително, ќе покажеме што се случува ако не го користиме ова.
Стандардно, можеме да ја смениме големината само на последната димензија на низата (т.е. колоните или горната граница). Ќе ја транспонираме низата, потоа ќе ја смениме последната димензија, а потоа повторно ќе ја смениме големината на двете димензии на 2D низата во Excel VBA.
1 . Потоа, користејќи ја изјавата ReDim , ќе создадемениза со три реда и две колони. На крајот, повторно ќе ја користиме изјавата ReDim со Зачувај клучен збор за зголемете ја горната граница на дводимензионалната низа.
Чекори:
- За почеток, притиснете ALT+F11 за да го отворите прозорецот VBA Module . Алтернативно, можете да го направите ова од табулаторот Програмер → изберете Visual Basic .
- Потоа, од Вметни таб → изберете Модул . Ќе го напишеме кодот VBA овде.
- Следно, напишете го следниов код во Модулот прозорец.
8455
Разложување на кодот VBA
- Прво, повикуваме Под постапка „ Redim_Preserve_2D_Array_Row ".
- Потоа, ја декларираме променливата Our_Array како динамична низа.
- Следно, ја дефинираме големината на низата. Долната граница е 3 , горната е 2 и двете почнуваат од 1 .
- Потоа, доделуваме вредности на низата .
- Потоа, ги внесуваме вредностите во опсегот на ќелиите C6:D8 .
- Потоа, ние ќе го изврши кодот.
- Значи, Зачувај Модулот и притиснете Изврши .
- Како резултат на тоа, ќе ги врати вредностите во дефинираните опсези на ќелии. Можеме да видиме дека „ Рејчел “ е во позицијата на редот 1 и колоната 1 ,што беше дефинирано како ( 1,1 ) во кодот VBA.
- Сега, ќе ја промениме големината на низата.
- Значи, додајте го ова на претходниот код и отстранете ја првата изјава Range.Value . Покрај тоа, како изгледа кодот можете да видите од снимката подолу.
2608
- Овде, ја зголемивме горната граница од ( 1 До 2 ) до ( 1 До 3 ) од 1 .
- Потоа, ги додадовме вредностите во низата.
- Сега ако го извршиме овој код, тогаш ќе видиме дека претходните вредности не се зачувани. Ќе се врати празно за претходните вредности.
- Сега, можеме да го поправиме ова со додавање на Зачувај клучни зборови во Изјава ReDim .
- Конечно, нашиот целосен код ќе биде овој.
4521
- Сега, ако Изврши овој код, тогаш излезот ќе биде вака. Така, ќе ја „ 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 Reserve “ на 2D низата . Овде, ќе ја користиме функцијата VBA Transpose за да ја смениме големината на долната граница на низата. Ако се обидовме да ја промениме големината на долната граница на низата во првиот метод, тогаш ќе ја видиме грешката „ Претплата надвор од опсегот “. Сега, без дополнително одложување, да видиме како можеме да го поправиме ова и да ја постигнеме нашата цел.
Чекори:
- Прво, како што е прикажано во првиот метод , отворете го прозорецот Module .
- Второ, додадете ги следните линии код во првиот код.
1150
- Покрај тоа, кодот за финалниот метод изгледа вака.
3430
Поделба на VBA кодот
- Прво, ја повикуваме Под процедурата „ ReDim_Preserve_2D_Array_Both_Dimensions “ .
- Потоа, останатите шифри до функцијата VBA Transpose се исти како во првиот код.
- Овде, ние ја транспонираат низата.
- Потоа, ја зголемуваме горната граница на низата.
- Потоа, повторно ја транспонираме низата. Затоа, на крајот ќе ја промени долната граница.
- Следно, ги внесуваме вредностите за низата со променета големина додеказачувување на старите податоци.
- На крај, ги запишуваме вредностите во опсегот на ќелиите C6:E9 .
- После дека, како што е прикажано во првиот метод , Изврши овој код.
- Така, можеме да визуелизираме како кодот зачувува 2D низа користејќи ја функцијата „ ReDim Preserve “ и VBA Transpose .
Прочитај повеќе: VBA за транспонирање низа во Excel (3 методи)
Работи што треба да се запаметат
- ReDim Preserve не може да ја промени долната граница на низата. За да го сториме тоа, треба да ја користиме функцијата Transpose .
- Можеме да користиме само ReDim на динамички низи.
Заклучок
Ви покажавме два брзи начини за „ ReDim Preserve “ во 2D низа во Excel VBA. Ако се соочувате со какви било проблеми во врска со овие методи или имате какви било повратни информации за мене, слободно коментирајте подолу. Покрај тоа, можете да ја посетите нашата страница ExcelWIKI за повеќе статии поврзани со Excel. Ви благодариме за читањето, продолжете да напредувате!