Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 989
Default 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
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default 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

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 274
Default 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


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 989
Default 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

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 989
Default 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.
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
If Range Variable isn't Empty achidsey Excel Programming 3 October 19th 05 07:15 PM
Empty Array ExcelMonkey[_190_] Excel Programming 4 March 1st 05 04:10 PM
empty variable range S1 Excel Discussion (Misc queries) 5 January 28th 05 02:33 PM
Is the array empty? Otto Moehrbach[_6_] Excel Programming 4 June 13th 04 03:35 AM
Problem trying to us a range variable as an array variable TBA[_2_] Excel Programming 4 September 27th 03 02:56 PM


All times are GMT +1. The time now is 02:47 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"