Excel. Определить размер массива после функции Split в VBA

Excel и VBA не являются моими коньками, хотя и мой уровень владения ими не ниже среднего. Но прибегаю к ним достаточно редко. Потому и наступаю на грабли. Недавно столкнулся с тем, что в VBA не смог определить размер массива строк после преобразования строки в массив строк функцией Split.

Перевести длинную строчку в массив можно функцией Split.

Dim txt As String
txt = "Перевести длинную строчку в массив можно функцией Split"
Dim textArray() As String
textArray = Split(txt)

Согласно документации, размер массива можно определить функцией Length. Но в случае с массивом, полученным с помощью функции Split, этого сделать нельзя. На строке "textArray.Length" будет сообщение об ошибке "Compile error: Invalid qualifier".

Compile error: Invalid qualifier

Compile error: Invalid qualifier

 

Найти длину массива можно через поиск наименьшего и наибольшего доступных индексов для указанного измерения массива: LBound и UBound.

Dim arrayStart As Integer
Dim arrayEnd As Integer
arrayStart = LBound(textArray)
arrayEnd = UBound(textArray)

MsgBox (arrayEnd - arrayStart)

Отмечу, что функция Split возвращает массив с нулевым основанием (т.е. первый элемент имеет индекс 0), потому в этом случае можно ограничиться определением только UBound(textArray).

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика