Подтвердить что ты не робот

VBA Проверьте, не является ли переменная пустой

У меня есть объект и внутри него я хочу проверить, установлено ли какое-либо свойство false, например:

If (not objresult.EOF) Then
  'Some code 
End if

Но почему-то иногда objresult.EOF есть Empty, и как я могу его проверить?

  • IsEmpty функция предназначена только для файлов excel
  • objresult.EOF Is Nothing - return Empty
  • objresult.EOF <> null - верните Empty!
4b9b3361

Ответ 1

Как вы проверяете, зависит от свойства DataType:

| Type                                 | Test                            | Test2
| Numeric (Long, Integer, Double etc.) | If obj.Property = 0 Then        | 
| Boolen (True/False)                  | If Not obj.Property Then        | If obj.Property = False Then
| Object                               | If obj.Property Is Nothing Then |
| String                               | If obj.Property = "" Then       | If LenB(obj.Property) = 0 Then
| Variant                              | If obj.Property = Empty Then    |

Вы можете указать DataType, нажав F2 для запуска Обозревателя объектов и поиска объекта. Другой способ - просто использовать функцию TypeName: MsgBox TypeName(obj.Property)

Ответ 2

Чтобы проверить, есть ли Variant Null, вам нужно сделать это так:

Isnull(myvar) = True

или

Not Isnull(myvar)

Ответ 3

Для числа это сложно, потому что если числовая ячейка empty, VBA назначит для нее значение по умолчанию 0, поэтому вашему VBA-коде сложно определить разницу между введенным нулем и пустым числом клетка.

Следующая проверка помогла мне узнать, было ли в ячейке фактическое значение 0:

If CStr(rng.value) = "0" then
    'your code here'
End If