Skip to content

Instantly share code, notes, and snippets.

@ezhov-da
Last active March 10, 2019 12:18
Show Gist options
  • Save ezhov-da/5fed6322bfe0acc8d853e3a54241d6cf to your computer and use it in GitHub Desktop.
Save ezhov-da/5fed6322bfe0acc8d853e3a54241d6cf to your computer and use it in GitHub Desktop.
vba массивы
Функции LBound, UBound
Функции LBound, UBound возвращают нижнее и верхнее граничные значения индексов статического или динамического массива.
Синтаксис:
LBound (array_Name [, dimension])
UBound (array_Name [, dimension])
array_Name - имя массива
dimension - целое число (необязательный аргумент). Определяет измерение массива, для которого надо получить верхний или нижний предел. При отсутствии dimension возвращается предел для первого измерения массива.
Нижеприведенный листинг демонстрирует использование функций LBound, UBound:
Очистка и удаление массивов при помощи Erase
Оператор Erase позволяет выполнять очистку для статических массивов и удаление - для динамических.
Когда элементы массива заполнены, данные в массиве остаются до тех пор, пока пользователь не присвоит новые значения элементам массива или пока VBA не освободится от массива. Зачастую бывает, что в дальнейших вычислениях динамический массив ни при каких обстоятельствах использоваться не будет, поэтому нецелесообразно "держать" его в памяти компьютера, т.к. это может сказаться на скорости работы программы. Или же может понадобиться очистить все значения в статическом массиве, устанавливая числовые значения на 0, а строковые - на пустые строки. Это можно осуществить при помощи вложенных циклов - как было показано на предыдущем уроке. Но, можно сделать гораздо проще:
Erase My_Array
Данный оператор обнуляет (если массив статический) или очищает (если массив динамический) массив My_Array.
Оператор Erase удаляет из памяти динамические массивы, освобождая область памяти, ранее используемую этим массивом. При удалении динамического массива с помощью оператора Erase необходимо повторно создать массив с помощью оператора ReDim перед тем, как можно будет использовать этот определенный динамический массив снова.
Поведение оператора Erase для статических массивов зависит от конкретного типа элементов массива (см. таблицу):
Тип статического массива Действие оператора Erase
Любой числовой тип Устанавливает элементы массива на 0
Любой строковый тип Устанавливает элементы массива на строку нулевой длины, а для строк фиксированной длины - как все символы пробела
Тип Variant Устанавливает элементы массива на Empty
Тип Object Устанавливает элементы массива на Nothing
Любой пользовательский тип Устанавливает каждую переменную в пользовательском типе индивидуально: численные - на 0; строковые - на строки нулевой длины; Variant - Empty; Object - Nothing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment