Excel VBA ReDim

Можем да коригираме броя на елементите в масива чрез VBA Redim. Redim не е функция, а е програма за динамично разпределение на паметта чрез оператор Redim. Когато използваме Redim, определено количество памет се задържа настрана, за да съхраняваме данните.

Как да използвате VBA ReDim изявление?

Ще обсъдим как да използвате VBA ReDim Statement, като използваме някои примери.

Можете да изтеглите този шаблон на VBA ReDim Excel тук - VBA ReDim Excel шаблон

VBA ReDim - Пример №1

Когато използваме Dim за масив, не можем да променим стойността на съхранението на данни в масив. Но когато използваме Redim, можем да променим запаметената стойност в масив. Този процес на промяна на масива се нарича повторно оразмеряване на масива.

Да предположим, че имаме масив A от 4 стойности на клетката, тогава той ще бъде дефиниран с;

  • Dim A (3) като двойно

Както виждаме, всички клетки имат „0” като запаметена стойност. Сега да предположим, ако преопределим Dim A с 3 данни за клетката и съхраним стойността в нея, тогава тя ще изглежда като по-долу.

  • ReDim B (2) Като двойно

В (0) = 1; B (1) = 3, B (2) = -6

Ще изглежда така;

Сега, ако искаме да добавим клетки в него, можем да го направим. Тогава той автоматично ще назначи „0“ на тези клетки. Сега за внедряване на ReDim, натиснете Alt + F11, за да отворите прозореца на VBA. И от менюто Вмъкване изберете опция Модул, за да отворите нов прозорец, както е показано по-долу.

Сега отворете Подкатегория и добавете всяко име. Както използваме ReDim, така сме нарекли като UsingReDim .

Код:

 Sub ИзползванеReDim () Край Sub 

Сега преди да дефинирате ReDim, първо определете всеки Integer. Тук сме го определили като „A“ с дължина на масива 3. И съхраняваме някои стойности в създаден масив от 3 клетки, както е показано по-долу.

Код:

 Под ИзползванеReDim () Dim A (2) Като цяло число ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Сега отпечатваме стойностите, съхранени в цяло число A, трябва да създадем поле за съобщения с помощта на команда MsgBox, както е показано по-долу.

Код:

 Под ИзползванеReDim () Dim A (2) Като цяло A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Сега стартирайте кода, като кликнете върху бутона за възпроизвеждане или клавиша F5, както е показано по-долу.

Сега ще използваме ReDim и той ще съхранява повече от определените символи в масива. За тази употреба използвайте ReDim за дефиниран цяло число A. Първо, ще премахнем определения брой клетки от Dim. Използването на функцията Redim е както следва:

  • ReDim A (2) се използва за масив от A (0), A (1), A (2) .
  • ReDim A (4) се използва за A (0), A (1), A (2), A (3), A (4) клетки с две допълнителни манекени.

Код:

 Под ИзползванеReDim () Dim A () като цяло число ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Край Sub 

След като го направите, стартирайте пълния код, като кликнете върху бутона за възпроизвеждане или използвате клавиша F5. След като стартираме пълния код, ще направим 3 кутии за съобщения, но със съобщение, съдържащо само „0“, както е показано по-долу.

Което е така, защото ReDim всъщност има само 3 стойности, но не носеше запазени стойности под дефинирани цели числа. Използването само на Redim не съхранява никакви стойности и пренася предварително съхранените стойности в него. За да приложим същото, трябва да запазим стойностите на определено цяло число A с помощта на ReDim. Използвайки Preserve във VBA, можем да съхраним стойността в ReDim. За това ще добавим Запазване след ReDim във VBA Codeas, показани по-долу.

Код:

 Под ИзползванеReDim () Dim A () като цяло число ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Запазване A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Краен под 

Сега стартирайте пълния код отново. Ще видим 3 полета за съобщения с всички съхранени стойности в него, както е показано по-долу.

Сега сигурно се чудите защо използвахме A (4) с ReDim Preserve?

По-долу е обяснението за това. Където първата, втората и третата позиция на масива са заети със стойности съответно 1, 2 и 3. И 4 -та и 5 -та позиция, която представлява 3 и 4 броя на масив А, са манекени. Което означава, че ако няма запазени данни на 4 -та и 5 -та позиция, то автоматично ще отчита стойността „0“ и съобщението няма да бъде попълнено.

Ако се опитаме да видим стойностите, съхранени в 4 -та и 5 -та позиция на масива ReDim, тогава трябва да вмъкнем поле за съобщения и за тези 2 позиции.

Код:

 Под ИзползванеReDim () Dim A () като цяло число ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Запазване A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) Край Sub 

Тъй като добавихме съобщение, опаковано за 4 -та и 5 -та позиция, без да съхраняваме никаква стойност. Сега стартирайте кода отново.

Както можем да видим на горните скрийншоти, за 4 -та и 5 -та позиция получихме кутии за съобщения, но стойността се показва като „0“. Което означава обяснява горното твърдение. Ако няма определена стойност, ReDim Preserve автоматично ще разгледа и попълва „0“ в останалите клетки.

VBA ReDim - Пример №2

Сега нека да видим как да използваме ReDim Statement с String вместо Integer.

Код:

 Под ИзползванеReDim () Dim A () като String ReDim A (3) A (0) = "клиент" A (1) = "продукт" A (2) = "идентификатор на продукта" ReDim запазване на A (4) MsgBox A (0) ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) Краен под 

След като свършите, стартирайте пълния код, като използвате клавиша F5 или ръчно, както е показано по-долу.

Както можем да видим на горния екран, ние получаваме всички дефинирани и съхранени знаци в първите 3 полета за съобщения. И в 4 -та и 5 -та кутия не получаваме нищо. Тъй като ReDim съхранява никаква стойност, ако не е дефинирана. За Integers ще се отрази като „0“, но при String ще показва само празни съобщения.

Плюсове на Excel VBA ReDim

  • VBA ReDim ни позволява да предефинираме стойностите на измеренията.
  • Можем да дефинираме колкото размерни масиви без или нулева стойност и да съхраним стойностите по-късно.
  • ReDim означава Re-Dimensioning дава възможност за използване на квоти за добавяне на произволен брой масиви от данни, без да увеличава размера на съхранените данни.

Неща, които трябва да запомните

  • Винаги не забравяйте да добавите Preserve след ReDim във VBA, така че да съхранява използваните по-рано размери.
  • Ако дадена величина е дефинирана като String, тогава всяка позиция, останала празна при присвояване на стойности, ще бъде празна и след като отпечатаме същата с помощта на полето за съобщения, ще се даде и празно поле за съобщение.
  • Ако сме определили размерите Dim с 3 знака или стойности на клетката, тогава в ReDim можем да използваме произволен брой величини, носещи вече дефинирани и съхранени стойности в Dim.

Препоръчителни статии

Това е ръководство за Excel VBA ReDim. Тук обсъдихме как да използваме VBA ReDim Statement за премахване на интервали, заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. Как да използвате VBA при декларация за грешка?
  2. Формат на номера във VBA
  3. Как да използвате VBA Find Function?
  4. VBA TRIM функция

Категория: