如何在VBA语言中expression“如果值不空”?
如何在VBA语言中expression“如果值不为空”的条件? 这是这样的吗?
"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
这取决于你想testing什么:
- 对于一个string,你可以使用
If strName = vbNullString
或IF strName = ""
或Len(strName) = 0
(最后一个被认为更快) - 对于一个对象,你可以使用
If myObject is Nothing
- 对于logging集字段,可以使用
If isnull(rs!myField)
- 对于Excel单元格,可以使用
If range("B3") = ""
或IsEmpty(myRange)
等等…扩展的讨论在这里可用(对于Access,但大部分也适用于Excel)。
为什么不使用内置的Format()函数?
Dim vTest As Variant vTest = Empty ' or vTest = null or vTest = "" If Format(vTest) = vbNullString Then doSomethingWhenEmpty() Else doSomethingElse() End If
Format()将捕获空variables以及空variables,并将其转换为string。 我使用它作为零/空validation的东西,并检查是否已经在combobox中select一个项目。
尝试这个:
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的build议很好。 你也可以通过首先创build一个Variant
然后将其赋值为Empty
来硬编码。 然后做一个如果/然后与可能填充它。 如果它被填满,它不是空的,如果没有,它仍然是空的。 你用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