Строковое значение, которое «кажется пустым, но имеет длину 2 символа», называется пробел , а не пробел , а не ноль , не пусто .
Используйте функцию Trim
(или ее младший брат Trim$
со строковым типом), чтобы удалить начальные / конечные пробельные символы, а затем проверить результат по vbNullString
(или ""
):
If Trim$(value) = vbNullString Then
Функция Trim
не удалит неразрывные пробелы. Вы можете написать функцию, которая делает:
Public Function TrimStripNBSP(ByVal value As String) As String
TrimStripNBSP = Trim$(Replace(value, Chr$(160), Chr$(32)))
End Function
Это заменяет неразрывные пробелы на ASCII 32 («нормальный» пробел), затем обрезает его и возвращает результат.
Теперь вы можете использовать его для проверки vbNullString
(или ""
):
If TrimStripNBSP(value) = vbNullString Then
Функция IsEmpty
может использоваться только с Variant
(в любом случае возвращает только значимый результат, заданный Variant
), чтобы определить, содержит ли этот вариант значение.
Функция IsNull
имеет чрезвычайно ограниченное использование в VBA, размещенной в Excel, и не должна быть необходима, поскольку на листе Excel ничего не будет Null
, особенно строка длиной 2.