Я пытаюсь получить длину массива, но получаю эту ошибку:
Требуется объект
Я делаю что-то неправильно?
Dim columns As Variant
columns = Array( _
"A", "ID", _
"D", "Name")
Debug.Print columns.Length ' Error: Object required
Ответ 1
Длина массива:
UBound(columns)-LBound(columns)+1
UBound себе UBound не лучший метод для получения длины каждого массива, поскольку массивы в VBA могут начинаться с разных индексов, например, Dim arr(2 to 10)
UBound будет возвращать правильные результаты, только если массив основан на 1 (начинает индексировать с 1, например, Dim arr(1 to 10). Он возвращает неправильные результаты в любых других обстоятельствах, например, Dim arr(10)