Оператор Erase позволяет выполнять очистку для статических массивов и удаление - для динамических. Когда элементы массива заполнены, данные в массиве остаются до тех пор, пока пользователь не присвоит новые значения элементам массива или пока VBA не освободится от массива. Это можно сделать следующим образом:
Erase My_Array
Данный оператор обнуляет (если массив статический) или очищает (если массив динамический) массив My_Array.
Оператор Erase удаляет из памяти динамические массивы, освобождая область памяти, ранее используемую этим массивом. При удалении динамического массива с помощью оператора Erase необходимо повторно создать массив с помощью оператора ReDim перед тем, как можно будет использовать этот определенный динамический массив снова.
Поведение оператора Erase для статических массивов зависит от конкретного типа элементов массива (Таблица 9.1.):
Таблица 9.1.
Тип статического массива | Действие оператора Erase |
Любой числовой тип | Устанавливает элементы массива на 0 |
Любой строковый тип | Устанавливает элементы массива на строку нулевой длины, а для строк фиксированной длины - как все символы пробела |
Тип Variant | Устанавливает элементы массива на Empty |
Тип Object | Устанавливает элементы массива на Nothing |
Любой пользовательский тип | Устанавливает каждую переменную в пользовательском типе индивидуально: численные - на 0; строковые - на строки нулевой длины; Variant - Empty; Object - Nothing |