ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   array variable is empty? (https://www.excelbanter.com/excel-programming/374516-array-variable-empty.html)

Mark

array variable is empty?
 
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

Tom Ogilvy

array variable is empty?
 
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

--
Regards,
Tom Ogilvy


"mark" wrote:

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


John Coleman

array variable is empty?
 
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
mark wrote:
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



Mark

array variable is empty?
 
thanks, Tom...

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

got it.

"Tom Ogilvy" wrote:

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

--
Regards,
Tom Ogilvy


"mark" wrote:

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


Mark

array variable is empty?
 
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.


All times are GMT +1. The time now is 09:40 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com