double arrow

ReDim Preserve iWhatIs(2)

iWhatIs(0) = 1

iWhatIs(1) = 2

iWhatIs(2) = 3

ReDim Preserve iWhatIs(3)

iWhatIs(3) = 4

Номер первого элемента по умолчанию начинается с 0, для того чтобы изменить нумерацию используйте инструкцию Option Base или используйте явное указание номера первого элемента. Инструкцию Option Base необходимо расположить в самом начале модуля VBA.

Номер первого элемента всех массивов начинается с 1:

Option Base 1

Dim iString(3) As String

Dim iData(5, 2) As Double

Объявление фиксированных массивов с явным описанием нижней границы:

Dim iString(1 To 3) As String

Dim iData(1 To 5, 1 To 2) As Double

Макрофункции для работы с массивом:

Array - функция позволяет создавать массив в ходе выполнения программы, без предварительного описания.

iArray = Array("ivan", "john", "maurizio")

Erase - функция используется для удаления данных, хранимых в элементах массива. Массив фиксированного размера очищается полностью, но память, отведённая под его хранение, остаётся за ним. Динамический же массив уничтожается полностью.

Erase iString

Erase iData

Erase iWhatIs

IsArray - функция проверяет, является ли переменная массивом. IsArray имеет всего один аргумент (переменную) и в зависимости от результатов проверки возвращает True - если переменная является массивом, или False - если нет.

Пример проверки динамического массива:

Dim iArray()

ReDim Preserve iArray(1 To 3)

iArray(1) = "ivan"

iArray(2) = "john"

iArray(3) = "maurizio"

ReDim Preserve iArray(1 To 4)

iArray(4) = "it's very good man's"

If IsArray(iArray) = True Then

MsgBox "iArray - это массив",, ""

Else

MsgBox "iArray - это не массив",, ""

End If

Пример проверки массива, созданного с помощью функции Array:

iArray = Array("ivan", "john", "maurizio")

If IsArray(iArray) = True Then

MsgBox "iArray - это массив",, ""

Else

MsgBox "iArray - это не массив",, ""

End If

LBound - функция определит нижнюю границу массива.

UBound - функция определит верхнюю границу массива.

Dim iData(5 To 15, 1 To 100) As Double

iLBound = LBound(iData)

iUBound = UBound(iData)

MsgBox "Нижняя граница массива: " & iLBound & Chr(10) _

& "Верхняя граница массива: " & iUBound,, ""

Применение функций LBound, UBound к обычной переменной или динамическому массиву, который ещё не был описан инструкцией ReDim, вызовет ошибку. Не забывайте проверять переменную, используя функцию IsArray.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: