VBA-урок 13
За да се спести повече от една колона от данни, ние се нуждаем от друга измерение на масива. например:
Съхраняване на данни в двумерен масив:
Освен това, има няколко примера за работа с тези стойности:
динамичен масив
Да си представим за момент, че ние трябва да актуализира данните в тази област на регулярна основа, и по тази причина не можем да зададете фиксирана стойност при декларирането.
За да намерите последната не е празна броя клетъчна линия, или с други думи, на последния ред от нашата база данни, ние използваме следната формула:
Excel не приема променливи в декларацията.
Вместо това, той ще обяви динамичен масив (с помощта на празни скоби), а след това се определи размера, с помощта ReDim:
С помощта на следната процедура, можете да съхраните цялата линия вашия набор (маса) в нашата гама:
В предишния пример, последният номер в нашата гама е LAST_ROW - 2:
Друг начин за определяне на последния номер, в нашия масив, може да бъде чрез използването на Ubound.
Тази функция връща най-голям брой в масива за избрания измерването (първото измерване е по подразбиране).
Освен това, има няколко примера, които ще изяснят това по-подробно:
Съхраняване на данни в диапазона от масив елементи
Има възможност за запълване на масив от стойности от диапазон от клетки в работния лист, дори и без използването на цикъл:
Предишният код, който може да бъде ефективно заменя със следното:
Въпреки че вторият метод изглежда по-привлекателен, отколкото първия, бъдете внимателни, че в повечето случаи може да ви струва повече време за завършване от първото.
Ако запазите данните в масива по този начин, първото число ще бъде 1, а не 0, което може да доведе до объркване.
На следващо място, в процеса на повишаване на кода, ако решите да се спаси само данните, които отговарят на специфичните критерии за търсене в масив (или да извърши съвсем различно действие), трябва да се пренапише изцяло кода с помощта на друга функция на цикъла.
Но този втори метод е много полезно, ако трябва да се съхранява на цялото съдържание на голям набор от данни, защото тя е по-бързо от цикъла (спестява около 0,2 секунди за всеки 15 000 записи).
Масивът (Array)
Едно от решенията може да бъде да се определи стойност ред по ред:
За щастие, можете да опростите кода използване масив (Array):
Тук е демонстрация Сменете използване функция (това ще ви помогне да се разбере следващия пример):
Сега, ако искаме да замени редица ценности с друг набор от данни, използването на масиви и функции за масиви, за да бъде изключително полезен:
Разделяне (Сплит)
Сплит функция ни позволява да конвертирате символен низ в масив.
За да се превърне низ в масив, направете следното:
Използвайте функцията за Сплит и уточни разделител:
En масив връща следните стойности:
Следващите 3 масиви също се връщат същите стойности:
Следващият пример връща стойността на третия ред:
Сплит е обратна на функцията на присъединяване.
Тази функция събира стойността на масива в низ.