Excel VBA масиви
По принцип една променлива трябва да съдържа по една стойност в даден момент, но когато искаме да съхраняваме множество стойности в една променлива, тогава такъв тип променлива е известна като променлива на масив, за да използваме променлива на масив във VBA, трябва да декларираме или дефинирайте го първо, можем да дефинираме променливата на масива с дължината му или без неговата дължина.
Да предположим, че ако имаме данни, които съдържат стотици редове и множество колони и трябва да създадем код, който ще използва данните. Сега, в този случай, трябва да създадем кратни на променливата, която ще извлече стойността от клетките и ще даде на програмата. Това ще бъде много уморително за създаването на толкова голяма част от променливата и следователно в такива случаи използваме масиви в Excel.
Масивите държат набора от данни в паметта си и не се нуждаем от нас да декларираме променливата за всяка от стойностите, които трябва да бъдат извлечени от данните. Необходимостта от използване на масиви се дължи на факта, че в променливата на excel са проектирани да държат по една стойност в даден момент, обаче, когато множество стойности се съхраняват от променлива, тя се превръща в масив.
- Създаването на масив е като създаването на отделна единица памет, която да съхранява данните в него. За създаване на масив данните трябва да бъдат от същия тип.
- Масивите, които даваме на Excel, трябва да съответстват на типа данни, с които разполагаме. Да предположим, че ако имаме данни, които имат само редове, така че в този случай ще използваме „Едномерния масив“ и ако данните съдържат и колони, тогава трябва да използваме „Двуизмерни масиви“, тъй като те могат да държат само стойностите от редовете и колоните.
- Масивите също трябва да функционират, за да работят като динамични или статични масиви. Тъй като даваме динамичен обхват на формулата, можем да направим и променливите на масивите. Динамичните масиви ще имат функционалността да включват безкраен брой редове и колони. В случай, че дефинираните от нас масиви са от статичен тип, те могат да съдържат само ограничен брой редове и колони, както е дефинирано по време на създаването на масива.
Обяснение
Работи с масив върху „Математическото правило на матрицата“, което означава, че те идентифицират данните само по нейното местоположение. Да предположим, че ако трябва да накараме VBA да разбере, че се нуждаем от „20“ в клетка „B3“, тогава трябва да напишем кода на местоположението като (3, 2), където първата стойност означава местоположението на реда, а втората стойност означава номера на колоната. В света на Excel този код на местоположения се нарича „Горна граница“ и „Долна граница“. По подразбиране местоположението в Excel започва от едно, а не от нула, така че Excel вижда „A1“ като ред номер 0, а не ред номер 1.
По същия начин колоните започват от нула, а не от една.
Тези масиви могат да бъдат дефинирани като статичен масив или динамичен масив. Ако ги дефинираме като статичен масив, това означава, че те не могат да съдържат повече от променливите, както са дефинирани, докато ги кодират. Ако не сме сигурни за стойността, която се изисква да се запомни от масивите, ние създаваме динамични масиви и в такива случаи те могат да съдържат безкрайни числа от стойности.
Сега, след като сме избрали типа масив, който се изисква, сега ще трябва да въведем данните в тези масиви.
Тези данни трябва да се дават един по един, за да превъзхождат по-долу.
След като данните се съхраняват в тези масиви, те са готови за използване като променлива в кодирането на VBA.
Списък с Топ 5 вида масиви
- Статични масиви
- Динамичен масив
- Едномерен масив
- Двуизмерен масив
- Многомерен масив
Нека да разгледаме всеки един от тях в детайли.
# 1 - Статични масиви
Масив, който има предварително зададен брой стойности, които могат да се съхраняват в него.
# 2 - Динамичен масив
Масив с недефиниран брой стойности, с които може да се справи.
# 3 - Едномерен масив
Масив, който може да съдържа само данни от редове или колони.
# 4 - Двуизмерен масив
Масив, който може да съхранява стойност от редовете и колоните.
# 5 - Многоизмерен масив
Как да използвам масиви във VBA (с примери)?
Можете да изтеглите този масив в шаблона на VBA Excel тук - масиви в шаблона на Excel на VBAМасивите могат да се използват в много ситуации, но те трябва да се използват, когато броят на променливите, които трябва да бъдат декларирани, е голям по брой и не е възможно да се декларират.
По-долу са някои от примерите, но преди да преминем към примерите, ще се научим да отваряме редактора на VBA с клавишна комбинация
Това ще отвори редактора на VBA, оттам трябва да въведем кода в „Този работен лист“.
Пример # 1
Изберете типа масив, който искате, трябва ли да е динамичен или статичен масив?
Ако се нуждаем от динамичен масив, тогава ще определим измерението като „вариант“.
Ако се нуждаем от статичен масив, тогава ще определим измерение като „Статично“.
Пример # 2
Дефинирайте колоните и редовете, които искате масивът да съхранява.
Ако сме въвели „1“ в скобата, това означава, че масивът може да съдържа стойност от 2 реда, тъй като броенето на Excel започва от нула.
Ако се нуждаем и от колони и редове, тогава трябва да дефинираме и двете.
Тук „1 до 2“ означава, че два реда и „1 до 3“ означава, че три колони.
Тук сме променили правилото как Excel брои редове и сме го помолили да брои от „1“, а не от нула.
Пример # 3
Въвеждането на данни в масива.
Данните трябва да влизат в клетките разумно. Тук данните трябва да бъдат въведени под формата на (I, j), където „I“ означава ред, а „J“ означава колона.
Така че "a (1,1") означава, че клетката "A1"
Пример # 4
Затваряне на кода.
След като данните са въведени за масива, последната стъпка ще бъде затварянето на кода.
Неща за запомняне
- По подразбиране Excel ще брои редовете, започващи от нула. Това означава, че „2“ вместо „I“ ще означава 3 реда, а не 2 реда. Същото важи и за „J“.
- Данните, които трябва да бъдат въведени за масива, трябва да се стартират от (0, 0), което е от първия ред и първата колона.
- В случай, че използваме динамичните масиви, тогава ще е необходима функцията на „VBA REDIM“, за да дефинира броя на редовете и колоните, които трябва да бъдат запомнени.
- В случай на създаване на двумерен масив, тогава трябва да използваме “Integer” като измерение.
- Файлът на excel трябва да бъде запазен във версията, която е „съвместима с макроси“, в противен случай кодирането, което сме направили във VBA, ще изчезне и няма да се изпълни следващия път.