array variable is empty?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi.

Pretend I have an integer array variable that I'm using for somthing,
arIntArray()

There's a loop that goes through and populates the elements of that array,
which are a subset of the columns in the spreadsheet.

If it turns out that there aren't any columns which meet the condition which
populates the array, is there a quick way to determine that the array is
still empty?

Ubound(arIntArray) fails, becuase it's undefined. Is Nothing and Null also
produced errors.

If needed, I can put in a Boolean flag to set if the array gets populated,
but it seems like there is likely another way.

Thanks.
Mark
 
Sub CCC()
Dim arIntArray() As Integer
Dim ub As Long, res As Variant
If Rnd() < 0.5 Then _
ReDim arIntArray(1 To 5)
On Error Resume Next
ub = UBound(arIntArray)
res = Err.Number
On Error GoTo 0
If res <> 0 Then
' not dimmed
MsgBox "Not Dimensioned"
Else
' process the array
MsgBox "Dimensioned"
End If
End Sub
 
I don't know if there is anything built in. You can roll your own with
error trapping:

Function IsEmptyArray(A As Variant) As Boolean
Dim test As Long
On Error GoTo must_be_empty
test = UBound(A)
IsEmptyArray = False
Exit Function
must_be_empty:
IsEmptyArray = True
End Function

Sub test()
Dim A() As Long
Dim B() As Long
ReDim B(1 To 2)
B(1) = 5
MsgBox IsEmptyArray(A)
MsgBox IsEmptyArray(B)
End Sub

Hope that helps

-John Coleman
 
thanks, Tom...

so it's basically just seeing if checking the UBound throws an error.

got it.
 
I don't know if there is anything built in. You can roll your own with
error trapping:


something like that is what I was planning to do after seeing Ton's post,
but now that I look at it again, I see that I don't even need to do that.

The loop I have that populates the array by checking the columns, has two
variables, i and j .. i for the columns, and j for the columns that meet the
condition to be added to the array.

j is incremented in the interior of the loop, and if j never gets
incremented, then the array was never populated.

so it turns out that all I have to do is check whether j is still 0.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top