Тема: Как узнать массив пуст или нет?
Как узнать массив пуст или нет...?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как узнать массив пуст или нет?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как узнать массив пуст или нет...?
Откровенно говоря, не вижу другого способа, кроме как просмотреть весь массив с помощью цикла for...
пустой массив - это массив не содержащий ни одного элемента, т.е. имеющий размерность = 0
вы, видимо, хотите узнать содержат ли элементы массива какие-то значения - тогда, действительно, без цикла не обойтись.
Простите возможно я не правильно сформулировал вопрос!!!
например...
Dim Arr() as variant
............
тело процедуры
............
итог
нужно проверить был ли заполнен массив Redim Arr (....)
если нет то функция Ubound(Arr) возвращает ошибку, так как массив фактически не имеет длины...но переменная обьявленна как массив. А нужно знать есть в нем данные или нет.
тогда проще всего написать функцию, котоая в случае ошибки при использовании функции UBound(Arr) вернет False, а в случае нормальной отработки - True.
вот и все ... :)
спасибо ... я так и думал...надеялся может, как нить по другому можно, но увы
Есть стандартная функция, по крайней мере, для Excel VBA.
Точно не помню, посмотрю в книге, подскажу. Но она есть.
Sub A_Test() Dim Arr() As Variant Call ArrayTest(Arr) End Sub Function ArrayTest(Arr) As Boolean Dim L As Long On Error Resume Next L = UBound(Arr) If (Err.Number = 9) Then ArrayTest = True MsgBox "Array is empty!" End If End Function
Функция IsArray(А). А-массив
Возвращает true, если переменная типа Variant содержит массив значений, и false если нет.
> Leonid
спасибо))
> Gorez
не совсем верно...если переменная обьявленна как массив Dim A() as variant функция IsArray всегда будет возвражать"истину"
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как узнать массив пуст или нет?
Форум работает на PunBB, при поддержке Informer Technologies, Inc