ListBox1 = ""

W

Wobbly

Why doesn't this work:

Private Sub CommandButton1_Click()
If ListBox1 = "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

While this does:

Private Sub CommandButton1_Click()
If ListBox1 <> "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

or have I missed something embarrassingly obvious?
Cheers Wobbly.
 
R

Rick Rothstein

A ListBox never equals the empty String. When nothing has been selected, the
ListBox value is Null. Your code would work if you did this...

Private Sub CommandButton1_Click()
If IsNull(ListBox1) Then
MsgBox "True"
Else
MsgBox "False"
End If
End Sub

However, I think most programmers would check the ListIndex (it's -1 when
nothing is selected and the 0-based index otherwise)...

Private Sub CommandButton1_Click()
If ListBox1.ListIndex = -1 Then
MsgBox "True"
Else
MsgBox "False"
End If
End Sub

Also notice that the argument for the MsgBox subroutine (actually, it's a
function, but you are calling it like a subroutine), and this applies to all
subroutine calls where the Call keyword is not used, should not be embedded
in parentheses (otherwise you would have problems if you had more than one
argument).
 
P

Patrick Molloy

you could try

IF Listbox1.ListIndex = -1 Then
-1 means nothing selected

OR you could use ListCount eg
If Listbox1.Listcount=0 then
if its zero, then its empty
 
Top