wake-up-neo.com

Wie drücke ich "wenn der Wert nicht leer ist" in der VBA-Sprache aus?

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
55
excel34

Verwenden Sie Not IsEmpty().

Beispielsweise:

Sub DoStuffIfNotEmpty()
    If Not IsEmpty(ActiveCell.Value) Then
        MsgBox "I'm not empty!"
    End If
End Sub
76
Jon Crowell

Es hängt davon ab, was Sie testen möchten:

  • für einen String können Sie If strName = vbNullString oder IF strName = "" oder Len(strName) = 0 verwenden (der letzte ist angeblich schneller)
  • für ein Objekt können Sie If myObject is Nothing
  • für ein Recordset-Feld können Sie If isnull(rs!myField) verwenden.
  • für eine Excel-Zelle können Sie 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).

28
Patrick Honorez

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
6
alexphi

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.

5
Marcand

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

3
Anthony

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
0
Todd Main