Инструкция за Excel VBA масиви в Visual Basic за приложение
Масивите в Visual Basic за нанасяне - структурите, които обикновено съхранява набор от взаимосвързани променливи от един и същи вид. Достъпът до регистрите на масива се извършва от техния цифров индекс.
Например, с екип от 20 души, чиито имена желаете да запазите за по-нататъшна употреба в кода VBA. Човек би могъл просто да обяви 20 променливи, за да съхраните всяко име, като това:
Но можете да използвате много по-прост и организиран начин - води списък на имената на членовете на екипа в масив от 20 променливи от тип String:
Линията е показано по-горе, ние сме обявени за масив. Сега можем да напише стойност на всеки един от неговите елементи, като така:
Друго предимство на съхраняване на данни в масива, в сравнение с използването на отделни променливи става ясно, когато е необходимо за извършване на същата операция на всеки елемент на масива. Ако имената на членовете на екипа са били съхранявани в 20 отделни променливи, това ще бъде необходимо всеки път да пиша 20 реда код да изпълнява едно и също действие с всеки от тях. Въпреки това, ако имената се съхраняват в масива, след това да извършите желаното действие с всеки един от тях може с един прост цикъл.
Как става това е показано по-долу във връзка с кода, който показва имената на всеки член на екипа в последователност в клетка на стълб с активен работен лист на Excel.
Очевидно е, че работата с масив, в който 20 имена, записани, значително по-малко тромави и по-точно, отколкото използването на 20 индивидуални променливи. И какво, ако тези имена не са 20, а 1000? И ако, освен това, е необходимо да се поддържа отделно име и бащино име. Ясно е, че скоро става почти невъзможно да се справят с обема на данни в кода VBA без помощта на масив.
Многомерни масиви в Excel Visual Basic
Visual Basic масиви, които бяха обсъдени по-горе, се считат за едно измерение. Това означава, че те да води прост списък с имена. Въпреки това, масиви могат да имат множество от измервания. Например, двумерен масив от стойности може да се сравни с мрежа.
Въпреки това, ако не укажете начален индекс за двете измерения на масива и го наричат по този начин:
след това този запис ще се разглежда като двумерен масив, първото измерение от които съдържа 32 елемента с индекси от 0 до 31, и второто измерение на матрицата съдържа 6 елементи с индекси от 0 до 5.
динамични масиви
Всички масиви в горните примери имат фиксиран брой измервания. Въпреки това, в много случаи ние не знаем предварително какъв размер трябва да бъде нашата масив. Можете да се измъкне от ситуацията, като обяви, огромен масив, размерът на който със сигурност ще бъде повече от достатъчно за нашия проблем. Но това ще изисква много допълнителна памет и може да забави програмата. Налице е по-добро решение. Можем да използваме динамичен масив - това е такъв масив, размерът на която може да се настрои и да се промени много пъти по време на изпълнението на макроса.
Един динамичен масив е обявен с празни скоби, като този:
След това трябва да се декларира масив от измерване в процеса на изпълнение на код, като използвате изрази ReDim:
И ако по време на изпълнението на кода трябва да се промени размера на масива отново, можете да използвате отново израз на ReDim:
Следва да се има предвид, че промяната в размера на динамичен масив по този начин ще доведе до загуба на всички ценности, съхранявани в масива. За да се запази информацията, която вече съществува в масива, трябва да използвате ключовата дума резерват. както е показано по-долу:
За съжаление, Запазване на ключова дума може да се използва само при смяна на горната граница на масива на измерване. Долната граница на масива, така че да не може да се промени. Освен това, ако масивът има повече от едно измерение, а след това, с помощта на ключовата дума резерват. можете да промените размера само последната измерение масив.