Масивите VBA - концепцията и измерение на масива

Array - съвкупност от променливи, които имат общо име и база тип. Всички елементи от данни sohranya- пълномощник в масива трябва да е от същия тип. Информацията се съхранява в масива могат да бъдат достъпни в произволен ред.

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

едномерни масиви

Едномерен масив - това е най-лесният вариант масив, който използва обикновен списък на данните. Например: Джон, Питър, Ник, Майк, Ваня, Glory, Игор, Юра, Саша, Вова е низ масив, състоящ се от 10 елемента. Нека да го дадете име My_Array.

Номерирането на елементите в масива започва от 0. Това система за номериране е често срещано явление в програмирането се нарича нулева база номерация а.

За достъп до данните, съхранявани в определен ред елементи следва да уточни името на масива, последван от номер, наречен индекс елемент. Индексът е винаги затворен в скоби. Например: My_Array (3) - този елемент от нашата гама отговаря на "Миша" (да не забравяме, че по подразбиране номериране елементи на масива започва от 0).

Тъй като номерирането с нулева база не е много удобно (както сме свикнали да мислим за един, а не 0), на VBA има директива компилатор, който ви позволява да се определи това "неудобство": Option Base.

многомерни масиви

Статични и динамични масиви

Масивите, които не променят броя на неговите елементи, наречени статични масиви. Пример за такъв набор може да служи като по-горе My_Array масив. съдържащ 10 елемента.

Въпреки това, има ситуации, когато първоначално неизвестен брой елементи в масива, или в процеса могат да варират. Такива масиви се наричат ​​динамични масиви.

Динамичният масив може да расте или се свива, за да побере точно необходимия брой елементи с памет, без напразно потребление.

Дим VARNAME ([означения]) [Както Type] VARNAME - всяко име на масив, използвайки валидно име идентификатор; Допълнителни означения - измерение масив. Ако размерът на масива е по-голям от един, след това означения разделени със запетая.

Допълнителни означения оператор има следния синтаксис:

[Долна Към] горната [[нисш Към] горната]. по-нисък - определя по-ниската гама на валидни индекси за масива (по избор); горната - определя горната граница на индекси масив (задължително аргумент).

Използване на масиви

За достъп до елемент на масива трябва да укажете името на масива, последвано от стойността на индекса, оградена в скоби.

Масивите VBA - концепцията и измерение на масива

Чрез използването на вложени цикъла може да се уреди много лесно инициализира двумерен масив:

Масивите VBA - концепцията и измерение на масива

Промяна на измерение на динамичния масив

ReDim [Запазване] VARNAME (индекси) [Както Type] [, VARNAME (индекси) [Както Type]] VARNAME - името на съществуващ масив; индекси - съществуващите измерение масив; Тип - тип на всяка VBA. Използвайте отделен оператор като тип за всеки масив, който е решен; Съхрани - незадължителен аргумент. Използването му води до факта, че данните, които вече са налични в масив се запазват след промяната му измерение.

Примери за правилното използване на изявление ReDim. Дим Array_Month () Както стринга - триизмерна низ динамично масив ReDim Array_Month (29) - ustanavlivet измерение динамичен масив 29 равни елементи ReDim Array_Month (от 1 до 30) - За да промените размера на елемента на масив 30 ReDim Съхрани Array_Month (от 1 до 31) - модифицира размер масив до 31 елемент, като същевременно се запази съдържанието Дим Array_DBL () като единична - заявява динамичен масив ReDim Array_DBL (2, 9), - като масив от двумерен ReDim Array_DBL (3, 7) - променя размера на двумерен масив ReDim запазване Array_DBL (от 1 до 3, 1 за 5) - променя последната размера на масива, като същевременно се запази съдържанието на

Обърнете внимание! Можете да промените само последната измерение на многомерен масив, когато ключовата дума резерват.

Функции LBound, UBound

Функции LBound, UBound върне долните и горните гранични стойности на индекси на статичен или динамичен масив.

Синтаксис: LBound (array_Name [измерение]) UBound (array_Name [измерение]) array_Name - име на измерението на масива - цяло число (по желание). Определя измерение масив, за които е необходимо да се получи горната или долната граница. При липса на ограничение връщане измерение за първи измерение на масива.

Следващият списък показва използването на функции LBound, UBound:

Масивите VBA - концепцията и измерение на масива

Почистване и отстраняване на масиви с помощта на Erase

Изтрийте оператор позволява на разрешение за премахване на статични масиви и - динамични.

Когато елементите на масива са пълни с данните в масива да остане толкова дълго, колкото потребителят не възлага нови стойности на елементите на масив или до VBA се освобождава от масива. Често се случва, че в следващите изчисления няма да се използва динамичен масив, при никакви обстоятелства, следователно, неуместно да се "държи" в паметта на компютъра, тъй като това може да повлияе на скоростта на програмата. Или може да се наложи да изчистите всички стойности в статичен масив, като определя числена стойност 0, и низ - празен низ. Това може да се постигне чрез използване на вложени цикъла - както беше показано в предишния урок. Но това може да се направи много по-лесно:

Този оператор нулира (ако статичен масив) или бистър (ако динамичен масив) масив My_Array.

Изтрийте оператор премахва динамичен масив памет, освобождавайки зоната на паметта се използва по-рано от този масив. При изтриване на динамичен масив, използвайки оператора на Erase трябва да пресъздадете масива посредством израз ReDim преди да можете да използвате този динамичен масив отново.

Изтриване на поведението на операторите за статични масиви зависи от конкретния вид на масив елементи (виж таблицата).

Вид на статичен масив