Is the array empty?

O

Otto Moehrbach

Excel 2002, WinXP
I display a UserForm with a Listbox (set to multi-select) and ask the user
to select the names he wishes. I then use the procedure that John
Walkenbach has in his book to build an array of the selected names. All
works well if the user selects at least one name.
There is a real possibility that the user will select no names, in which
case the array will contain no names. I need to trap that situation.
How can I trap the fact that no names were selected or that the array has no
members? Thanks for your help. Otto
 
S

Stuart

Otto,

Perhaps:

If Not IsEmpty(yourvarr(1)) Then

which tests for an initial array value.

Regards.
 
R

Rob van Gelder

Sub test()
Dim arr() As String, bln As Boolean, i As Long

' ReDim arr(1)

On Error Resume Next
i = LBound(arr): bln = Not (Err.Number = 9)
On Error GoTo 0

MsgBox bln
End Sub
 
D

Dave Peterson

I'd just count:

Option Explicit
Private Sub CommandButton1_Click()
Dim iCtr As Long
Dim SelectedCtr As Long
Dim myNames() As String
SelectedCtr = 0
With Me.ListBox1
For iCtr = 0 To .ListCount - 1
If .Selected(iCtr) Then
SelectedCtr = SelectedCtr + 1
ReDim Preserve myNames(1 To SelectedCtr)
myNames(SelectedCtr) = .List(iCtr)
End If
Next iCtr
End With

MsgBox SelectedCtr
End Sub

Private Sub UserForm_Initialize()

Dim iCtr As Long
For iCtr = 1 To 10
Me.ListBox1.AddItem ("asdf" & iCtr)
Next iCtr
Me.ListBox1.MultiSelect = fmMultiSelectMulti

End Sub
 
O

Otto Moehrbach

Stuart, Rob, Dave
Thanks for your help. That gave me what I needed. Dave, your
suggestion was right on because I was counting anyway in the building of the
array, so why didn't I think of that? Thanks again. Otto
 
Top