View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.newusers
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default Using a two-dimensional array in Excel 2002 or 2003

You can pickup the array directly

Dim Data

Data = Range("E1:H3")

and then you address both dimensions via the lower and upper bounds


For i = LBound(Data, 1) To UBound(Data, 1)

For j = LBound(Data, 2) To UBound(Data, 2)


Total code

Sub SampleArray()
Dim Data
Dim i As Long, j As Long

Data = Range("E1:H3")

For i = LBound(Data, 1) To UBound(Data, 1)

For j = LBound(Data, 2) To UBound(Data, 2)
cum = cum + Data(i, j)
MsgBox prompt:=Data(i, j) & " - " & cum
Next j
Next i
End Sub



--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)



"rwjack" wrote in message
...
I am trying to improve my coding skills in Excel VBA and I just can't seem
to
find a good, very basic, example of how to use a 2-dimensional array. I've
looked in several reference books & browsed VBA Forums but can't find an
example I can understand. What I was trying to do was define a 3 x 4 Array
that has a data type of Single. My sample data is located in Cells E1:H3.
E F G H
1 3.4 8.1 11.6 100.3
2 5.2 7.3 45.2 632.4
3 1.7 9.6 39.7 161.5

I've been trying to use the LBound and UBound functions too, thinking this
might be the best approach but none of my coding attempts work. That is
why I
did not include any.

I would like to be able, using code, see what is in each Array element and
then be able to Sum the values and see the results in a variable.

I was able to create a 1-dimensional Array, shown below, but it is pretty
basic.

Sub SampleArray()
Dim Data(9) As Single
Dim i As Integer
Dim cum As Single

For i = LBound(Data) To UBound(Data)
Data(i) = Cells(i, 1)
MsgBox prompt:=Data(i)
cum = cum + Data(i)
MsgBox prompt:=cum
Next i
End Sub

I would appreciate any help submitted. Thanks