При таком объявлении массива IsArray() всегда скажет да:
Dim FileMassiv()
MsgBox IsArray(FileMassiv) ' Истина
ReDim FileMassiv(-1)
MsgBox IsArray(FileMassiv) ' Истина
ReDim FileMassiv(0)
MsgBox IsArray(FileMassiv) ' Истина
Ошибку можно обойти так:
Dim FileMassiv()
ReDim FileMassiv(-1)
' выполнение операций
' ...
' проверка
MsgBox Ubound(FileMassiv) ' для пустого массива вернет -1
И так:
Dim FileMassiv
FileMassiv = Array()
' выполнение операций
' ...
' проверка
MsgBox Ubound(FileMassiv) ' для пустого массива вернет -1
Или сначала проверить на наличие элементов в массиве (что-то подобное уже было на форуме):
Dim FileMassiv(), HasElements
' выполнение операций
' ...
' проверка
HasElements = False
For Each Elt In FileMassiv
HasElements = True
Exit For
Next
MsgBox HasElements
Во всех этих случаях проверяемая переменная FileMassiv при вызове TypeName() и VarType() возвращает одинаковые значения "Variant()" и 8204.
Щт Уккщк Куыгьу Туче
’ҐЄгй п Є®¤®ў п бва Ёж : 1251