Я программирую в Excel VBA.Имеет ли массив данные
У меня есть файл, в котором я открываю окно проводника и выбираю файл или файлы и возвращаю имена этих файлов в массив.
Мне нужно проверить, заполнен ли массив или нет. Я пробовал if FileNames(1) <> "" Then
, который работает, если в массиве есть что-то. Но когда массив пуст, я получаю сообщение об ошибке type mismatch
. Если я попробую If FileNames <> False Then
, он работает, когда массив ничего не имеет в нем, но дает мне ошибку type mismatch
, когда в массиве что-то есть. Я имею массив как нормальная переменная как Dim FileNames
, но я пробовал Dim FileNames() as String
тоже без успеха. Я выбираю файл или нет, я получаю ошибку type mismatch
. Вот код, который я получил:
sub GetUserInfo()
Dim FileNames
FileNames = Select_File_Or_Files_Windows 'This opens the Explorer window and allows you to pick multiple files
If FileNames(1) <> "" Then
'Do something
Else
'Do the last thing
End If
End Sub
Я думаю, что [это] (http://www.cpearson.com/Excel/VBAArrays.htm) может помочь тебе. См. Функцию IsArrayAllocated. – Brian
Было бы полезно показать код для функции 'Select_File_Or_Files_Windows', поэтому мы можем увидеть, как он создает возвращаемое значение. –
' Select_File_Or_Files_Windows' почти наверняка возвращает нестроковый массив или не-массив. Это единственное, что я пробовал, что даст несоответствие типа - все остальное закончится тем, что индексируется вне диапазона или несоответствие размеров. Дважды проверьте значения в 'Filenames' после их возврата и убедитесь, что все значения в нем являются строками. – Mikegrann