масиви №8

Много определения на масива. Те са различни по форма, но по същия начин в съдържанието.

Array - набор от същия тип на данните, съхранявани в паметта и с име.

Масивът има следните характеристики:







индекс - номер на елемент в масива;

елемент - всяка стойност в масива;

размер - броят на елементи в масива.

Масив често се нарича маса.

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

първият индекс елемент в двумерен масив показва ... (на линията, която е елемент на масива).

втори индекс елемент в двумерен масив показва ... (колона, при който елементът на масива).

масиви №8

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

Най-малко сложен масив - това е просто списък на елементи от данни; този вид на масив се нарича обикновена или едномерен масив. Такъв набор може да бъде представена като опашка, където всеки елемент на опашката се определя не само сериен номер (в опашката), но неговата специфична стойност (наименование).

При създаване на масиви, включително многоизмерен, за съхраняване на стойността на всеки елемент се разпределя RAM (дори и да е нула или празен низ) ,. По този начин се създава голям масив, има рязък спад в наличната памет, която може да повлияе неблагоприятно на работата на програмата. Следователно, за да се създаде многомерни масиви трябва да бъдат само ако е необходимо. Такива масиви се наричат ​​статични (статично), тъй като броят на елементите в масива не се променя.

Избор на размера на масива може да бъде трудно, ако не сте сигурни колко данни ще бъдат въведени в масива, или ако количеството на данните, събрани за масива варира значително. За такива ситуации VBA поддържа определен вид на решетки, наречена динамична (динамично) масив.

Динамични масиви са създадени от оператора Дим, частен, обществено или Статично, където списъка на размери е пропуснат, след това им размер, определен с помощта ReDim оператор по време на процедурата.

Отчетът за ReDim има следния синтаксис:

ReDim [Запазване] VARNAME (индекси) [като тип] [, VARNAME (индекси) [Както тип]],

където по желание дума резерват причинява VBA, която съхранява данни в съществуващ масив, когато размерът на масива се променя чрез ReDim;

VARNAME - името на съществуващ масив;

индекси - измерване масив (индекси синтаксис за оператора в оператора ReDim същото като за оператора Дим);

тип - вида или някоя VBA дефинирани от потребителя тип.

Да се ​​използва отделен Като вид оператор за всеки масив, който определите.

Дим месец () Както стринга - заявява динамична Месец масив;

ReDim месец (1 до 30) - за промяна на размера на масив от 30 елементи;

ReDim месец (31) - за промяна на размера на елемент на масива 31;

ReDim Preserv месец (1 до 31) - за промяна на размера на елемент на масива 31, при поддържане на съдържанието;

Дим Таблица () Като цяло число - заявява динамичен масив;

ReDim маса (3, 15), - получаване на двумерен масив;

ReDim маса (4, 20) - променя размера на двумерен масив;

ReDim Preserv маса (4, 25) - Само последната промяна на масива;

Дим Mas като Variant - декларира променлива от тип Variant;

ReDim Mas (20) Като цяло число - създава масив от 20 числа във варианта.

Изводи за Visual Basic масиви:

Можете да промените само последната измерение на многомерен масив, когато ключовата дума се използва Preserv;

Можете да използвате ReDim да се създаде въведен масив в променлива от тип Variant.

Масивът в програмата може също да бъде определена елемент от елемент. Например, следния код:

Дим B (л до 2 1 до 2) като единична

Той създава двуизмерна маса създава двуизмерна маса

При работа с масиви, е полезно да се използват следните функции и процедури.

Обадете се на: Array (ArgumentList)

Той създава масив от тип Variant. Аргумент в скоби представлява разделени със запетая списък на стойностите, определени за елементи на масиви.

Дим Ден Като Variant

Ден = Array ( "п", "Ту", "CP", ...)

VBA има две функции, които следят горните и долните индекси граница масив, - Lbound функция и Ubound. Тези функции връщат горните и долните стойности границата на индекси на статичен или динамичен масив.







Lbound (ArrayName [величина])

Ubound (ArrayName [величина])

където ArrayName - името на променлива масив;

Размерът - цяло число, което показва размера на масива, по-ниска или горната граница, която връща функцията. трябва да се посочи за първи измерение 1, за втория - 2 и т.н. Ако измерение на аргумента е пропуснат, подразбира стойност 1.

Изтриване на оператор (почистване или отстраняване на масиви).

Изтрийте оператор дава възможност на едно от следните две неща, в зависимост от това как потребителят манипулира масив - статичен или динамичен. В случай на статични масиви Erase ви позволява да почистите всички елементи на масива, основно възстановяване на масива в същото състояние, което е имал, когато го е създал VBA в паметта. В случай на динамични масиви Erase позволява да се премахне напълно масива и съдържанието на RAM.

VBA изтрива от паметта масиви са обявени за локално в процедурата (както и други локални променливи), всеки път, когато процедурата се извършва завършва. Въпреки това, масиви, обявени на ниво модул, има, и всички процедури в този модул се изпълнява. Ако една голяма програма, можете да възстановите ресурсите на паметта, използвани от динамични масиви от модулна ниво. Erase позволява на оператора да направи точно това.

Изтриване array1 [, array2, ...]

Тук масив 1 и 2 са масив всяко валидно име на VBA масив.

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

Нулева база масиви които обикновено се използват в VBA. Системата на номериране за нулева база индекс на първия елемент във всеки размер на масива е равно на 0; масив с елементи 10 има индекси от 0 до 9.

Би било много по-лесно, ако елементите на масивите са номерирани като се започне с един, а не с 0. VBA ви позволява да определите началната броя на елементите на масив, използвайки директивата за Option Base компилатор да се уточни дали номерацията на индексите започват от 0 или 1.

Директива Option Base съставител има следния синтаксис:

Вариант Base 0 | 1

Вариант Base настройка 0 "по подразбиране на нула

Опция База 1 "индекси на масиви започват с 1

Създаване на програма, организиране на триизмерна масив. Първият два масива елемент по елемент е определен в програмата. Третият масив организирани чрез сумиране на съответни редици на членовете В и С.

Резултатите от организацията определя изхода в съответните етикетите на формата след кликване върху масива на бутона.

масиви №8

Частни Под CommandButton1_Click ()

Дим В (1 до 2 1 до 2) Като цяло число

Дим в (1 до 2 1 до 2) Като цяло число

Дим А (1 до 2 1 до 2) Като цяло число

Label3.Caption = «а (1,1) =» А (1, 1) «А (1.2) =» А (1, 2) «А (2.1) =» А (2, 1) «А (2.2) =» А (2, 2)

Label6.Caption = «к (1.1) =» к (1, 1) «К (1.2) =» к (1, 2) «К (2.1) =» к (2, 1) «К (2.2) =» к (2, 2)

За да се създаде масив, трябва да посочите: име, броя на елементите (размер на масива), вида на данните, които ще се съхраняват в масива.

Масивите са създадени с Дим изявление:

Дим ArrayName (размер) Както тип данни

Ако вместо думата напишете думата Дим Public, то ще създаде зона масив, който ще се появи на цялата програма.

Пример: Дим MoyMassiv (3) Като цяло число

Това създава масив наречен MoyMassiv, състояща се от четири елемента и е с възможност за съхраняване на стойност от тип цяло число.

Както отброяването започва да елементите на числото нула, номер 3 е поставен.

Друга версия на заданието на масива: посочете първия и последния брой на елементите на масив:

Дим MoyMassiv (1 Какво 3) Като цяло число

Елементи за създаване на масив не съдържа никакви данни. За да запазите в масив на всяка стойност, трябва да се уточни кой елемент е да бъде назначен. Да предположим, че се създаде масив, който може да съдържа до пет линии:

Дим служителите (4) String

Ако искате първия елемент на масива, за да се придаде стойност Иван Никитин, е необходимо да се определи следния код:

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

Дим служител (4) String

Дим аз Като цяло число

служител (I) = InputBox ( "vvedite Имия")

MsgBox служител (I)

Стойностите на елементите на масив могат да бъдат причислени към друга променлива, например:

Дим служител (4) String

Дим ваканция Както стринга

Първият ред създава служител масив, състоящ се от пет текстови стойности;

Вторият ред създава текст променлива, наречена почивка;

трета линия на четвъртия елемент на масива (който съответства на номера на трета последователност) е разположен Ivan Никитин;

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

Обикновено елементи на масиви съдържат стойности, отнасящи се до един тип данни, например, само редове или само цели числа. Ако е необходимо, че масивът се съдържа различни типове данни, когато създавате масив, посочи типа данни обекта на:

Дим MoyMassiv като обект

Елементи на масива могат да съдържат стойности на различни видове:

Двумерни масиви в VBA

Процедурата за създаване на двумерен масив е същата като тази на едномерна, с единствената разлика, че, което показва неговия размер, трябва да посочите две стойности - редовете и колоните:

Дим DvuhMMassiv (ред, колона) като тип данни

Размерът на триизмерна масив ще се определя от три числа, и така нататък:

Дим TrehMMassiv (X, Y, Z) Както тип данни

Напълнете масив от произволни формули:

Дим а (1 до 22) Като цяло число

а (I) = -5 + Fix (Rnd * (37 - (-5) + 1))