Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default Arrays with one item

Hello all

I have a procedure which creates an array based upon values in a named
range. There's three possible ranges which can be selected. The first
two ranges contain more than one value, whereas my third only contains
one item.

I create the array as follows. (The gstrReportingArea variable relates
to one of the three possible ranges, and mwshtVariablesConstants is a
worksheet object variable).

Public gaFactoryAreas() As String
'Create variable array to hold factory areas
c = mwshtVariablesConstants.Range("var" & gstrReportingArea &
"_FactoryAreas").Columns.Count
ReDim gaFactoryAreas(1 To c)
For i = 1 To c
gaFactoryAreas(i) = mwshtVariablesConstants.Range("var" &
gstrReportingArea & "_FactoryAreas").Cells(1, i)
Next i

My problem relates to when I try to use gaFactoryAreas array in a 'For
Each' loop.

When I have only one item in gaFactoryAreas, the loop fails, whereas if
there's more than one item it fails.

Does anyone have any suggestions on how to deal with the possibility
that there may only be one item in an array. I'"m trying to avoid using
lots of IF statements.

Regards

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default Arrays with one item

Exuse me I just noticed the typo. I wanted to say...

When I have only one item in gaFactoryAreas, the loop fails, whereas if

there's more than one item, it **WORKS**

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 279
Default Arrays with one item

read up on array

unless otherwise instructed array start at zero not 1

check your for each loops

try

For i = LBound(gaFactoryAreas) To UBound(gaFactoryAreas)
' do something with Arr(gaFactoryAreas)
Next i


"mo_in_france" wrote:

Hello all

I have a procedure which creates an array based upon values in a named
range. There's three possible ranges which can be selected. The first
two ranges contain more than one value, whereas my third only contains
one item.

I create the array as follows. (The gstrReportingArea variable relates
to one of the three possible ranges, and mwshtVariablesConstants is a
worksheet object variable).

Public gaFactoryAreas() As String
'Create variable array to hold factory areas
c = mwshtVariablesConstants.Range("var" & gstrReportingArea &
"_FactoryAreas").Columns.Count
ReDim gaFactoryAreas(1 To c)
For i = 1 To c
gaFactoryAreas(i) = mwshtVariablesConstants.Range("var" &
gstrReportingArea & "_FactoryAreas").Cells(1, i)
Next i

My problem relates to when I try to use gaFactoryAreas array in a 'For
Each' loop.

When I have only one item in gaFactoryAreas, the loop fails, whereas if
there's more than one item it fails.

Does anyone have any suggestions on how to deal with the possibility
that there may only be one item in an array. I'"m trying to avoid using
lots of IF statements.

Regards


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Arrays with one item

Public gaFactoryAreas() As String
Sub testme()

'Create variable array to hold factory areas
c = 1
ReDim gaFactoryAreas(1 To c)
For i = 1 To c
Debug.Print i

Next i

End Sub

works fine for me.

--
Regards,
Tom Ogilvy

"mo_in_france" wrote in message
ups.com...
Exuse me I just noticed the typo. I wanted to say...

When I have only one item in gaFactoryAreas, the loop fails, whereas if

there's more than one item, it **WORKS**



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Arrays with one item

Couldn't you just loop through the elements of the array the same way you built
it?

dim j as long
for j = lbound(gafactoryareas) to ubound(gafactoryareas)
msgbox gafactoryareas(j)
next j



mo_in_france wrote:

Hello all

I have a procedure which creates an array based upon values in a named
range. There's three possible ranges which can be selected. The first
two ranges contain more than one value, whereas my third only contains
one item.

I create the array as follows. (The gstrReportingArea variable relates
to one of the three possible ranges, and mwshtVariablesConstants is a
worksheet object variable).

Public gaFactoryAreas() As String
'Create variable array to hold factory areas
c = mwshtVariablesConstants.Range("var" & gstrReportingArea &
"_FactoryAreas").Columns.Count
ReDim gaFactoryAreas(1 To c)
For i = 1 To c
gaFactoryAreas(i) = mwshtVariablesConstants.Range("var" &
gstrReportingArea & "_FactoryAreas").Cells(1, i)
Next i

My problem relates to when I try to use gaFactoryAreas array in a 'For
Each' loop.

When I have only one item in gaFactoryAreas, the loop fails, whereas if
there's more than one item it fails.

Does anyone have any suggestions on how to deal with the possibility
that there may only be one item in an array. I'"m trying to avoid using
lots of IF statements.

Regards


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Arrays with one item

I think he otherwise instructed:

ReDim gaFactoryAreas(1 To c)



--
Regards,
Tom Ogilvy


"Vacation's Over" wrote in message
...
read up on array

unless otherwise instructed array start at zero not 1

check your for each loops

try

For i = LBound(gaFactoryAreas) To UBound(gaFactoryAreas)
' do something with Arr(gaFactoryAreas)
Next i


"mo_in_france" wrote:

Hello all

I have a procedure which creates an array based upon values in a named
range. There's three possible ranges which can be selected. The first
two ranges contain more than one value, whereas my third only contains
one item.

I create the array as follows. (The gstrReportingArea variable relates
to one of the three possible ranges, and mwshtVariablesConstants is a
worksheet object variable).

Public gaFactoryAreas() As String
'Create variable array to hold factory areas
c = mwshtVariablesConstants.Range("var" & gstrReportingArea &
"_FactoryAreas").Columns.Count
ReDim gaFactoryAreas(1 To c)
For i = 1 To c
gaFactoryAreas(i) = mwshtVariablesConstants.Range("var" &
gstrReportingArea & "_FactoryAreas").Cells(1, i)
Next i

My problem relates to when I try to use gaFactoryAreas array in a 'For
Each' loop.

When I have only one item in gaFactoryAreas, the loop fails, whereas if
there's more than one item it fails.

Does anyone have any suggestions on how to deal with the possibility
that there may only be one item in an array. I'"m trying to avoid using
lots of IF statements.

Regards




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
Looking up whether one item has a certain matching item Thocow Excel Worksheet Functions 6 March 31st 10 04:39 PM
Macro to ask for a item# and then show all details for that item Durai Excel Discussion (Misc queries) 5 December 4th 09 08:17 PM
To find rate of each item from item.xls and to copy price.xls pol Excel Discussion (Misc queries) 7 July 16th 09 12:49 AM
Item numbers result in item description in next field in Excel Cheryl MM Excel Worksheet Functions 1 February 20th 07 03:51 PM
Selecting an Item from a List and getting a different item to pop. Matt Excel Worksheet Functions 1 December 7th 04 02:37 PM


All times are GMT +1. The time now is 11:27 PM.

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"