В случае сомнений прочитайте документацию :
IsEmpty
возвращает True
, если переменная неинициализирована или явно установлена на Empty
; в противном случае возвращается False
. False
всегда возвращается, если выражение содержит более одной переменной.
Поскольку ваша переменная абсолютно инициализирована, даже если вы удалите все значения из массива, почему вы ожидаете, что IsEmpty
будет возвращать что-либо, кроме False
?
В зависимости от того, чего вы на самом деле хотите достичь с помощью своего кода, вы можете проверить размеры вашего массива:
If UBound(GetDataFromCSV, 1) = -1 And UBound(GetDataFromCSV, 2) = -1 Then
'array is a 0x0 array
End If
Если ваш массив не имеет нулевого размера, вам, вероятно, нужно перебрать все поля и проверить, не заполнены ли они.
Если вы считаете, что вам нужно сбросить переменную, которая была определена как массив, на Empty
Я подозреваю, что вы где-то допустили ошибку проектирования, поэтому я настоятельно рекомендую вернуться и исправить проект. Однако, если вам по какой-то причине вам необходимо сбросить переменную массива на Empty
, вы можете сделать это следующим образом:
ReDim a(2, 5) 'define variable as array
...
Dim a 're-define variable as regular variable; does not clear the value
a = Empty 'clear variable