Как выразить условие "если значение не пусто" на языке VBA? Это что-то вроде этого?
"if value is not empty then..."
Edit/Delete Message
Используйте Not IsEmpty()
.
Например:
Sub DoStuffIfNotEmpty()
If Not IsEmpty(ActiveCell.Value) Then
MsgBox "I'm not empty!"
End If
End Sub
Это зависит от того, что вы хотите проверить:
If strName = vbNullString
или IF strName = ""
или Len(strName) = 0
(последний, предположительно, быстрее)If myObject is Nothing
If isnull(rs!myField)
If range("B3") = ""
или IsEmpty(myRange)
Etc... Расширенное обсуждение доступно здесь (для Access, но большая часть его работает и для Excel).
Почему бы просто не использовать встроенную функцию Format()?
Dim vTest As Variant
vTest = Empty ' or vTest = null or vTest = ""
If Format(vTest) = vbNullString Then
doSomethingWhenEmpty()
Else
doSomethingElse()
End If
Формат() будет ловить пустые варианты, а также пустые и преобразовывать их в строки. Я использую его для таких вещей, как null/empty validations и проверяет, был ли элемент выбран в выпадающем списке.
Попробуйте следующее:
If Len(vValue & vbNullString) > 0 Then
' we have a non-Null and non-empty String value
doSomething()
Else
' We have a Null or empty string value
doSomethingElse()
End If
Я не уверен, что это то, что вы ищете
if var<>"" then
dosomething
или
if isempty(thisworkbook.sheets("sheet1").range("a1").value)= false then
также можно использовать функцию ISEMPTY
Предложение Alexphi хорошее. Вы также можете жестко закодировать это, сначала создав переменную как Variant
, а затем присвоив ее Empty
. Затем выполните if/then, чтобы, возможно, заполнить его. Если он заполняется, он не пуст, если он этого не делает, он остается пустым. Затем вы проверяете это с помощью IsEmpty
.
Sub TestforEmpty()
Dim dt As Variant
dt = Empty
Dim today As Date
today = Date
If today = Date Then
dt = today
End If
If IsEmpty(dt) Then
MsgBox "It not is today"
Else
MsgBox "It is today"
End If
End Sub