Wie drücke ich die Bedingung "Wenn der Wert nicht leer ist" in der VBA-Sprache aus? Ist es so etwas?
"if value is not empty then..."
Edit/Delete Message
Verwenden Sie Not IsEmpty()
.
Beispielsweise:
Sub DoStuffIfNotEmpty()
If Not IsEmpty(ActiveCell.Value) Then
MsgBox "I'm not empty!"
End If
End Sub
Es hängt davon ab, was Sie testen möchten:
If strName = vbNullString
oder IF strName = ""
oder Len(strName) = 0
verwenden (der letzte ist angeblich schneller)If myObject is Nothing
If isnull(rs!myField)
verwenden.If range("B3") = ""
oder IsEmpty(myRange)
verwenden.Etc ... Erweiterte Diskussion verfügbar hier (für Access, aber das meiste davon funktioniert auch für Excel).
Versuche dies:
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
Warum nicht einfach die integrierte Format () - Funktion verwenden?
Dim vTest As Variant
vTest = Empty ' or vTest = null or vTest = ""
If Format(vTest) = vbNullString Then
doSomethingWhenEmpty()
Else
doSomethingElse()
End If
Format () fängt sowohl leere als auch leere Varianten ab und transformiert sie in Strings. Ich benutze es für Dinge wie null/leere Validierungen und um zu überprüfen, ob ein Element in einer Combobox ausgewählt wurde.
Ich bin mir nicht sicher, ob Sie danach suchen
if var<>"" then
dosomething
oder
if isempty(thisworkbook.sheets("sheet1").range("a1").value)= false then
die Funktion ISEMPTY kann ebenfalls verwendet werden
Alexphis Vorschlag ist gut. Sie können dies auch hart codieren, indem Sie zuerst eine Variable als Variant
erstellen und dann Empty
zuweisen. Dann mach ein wenn/dann mit um es evtl. zu füllen. Wenn es gefüllt wird, ist es nicht leer. Wenn es nicht gefüllt wird, bleibt es leer. Sie überprüfen dies dann mit 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