Type myType
X As Long
Y As Long
End Type
Sub MySub1()
Dim myArray(20, 20) As myType
For i = LBound(myArray, 1) To UBound(myArray, 1)
For j = LBound(myArray, 2) To UBound(myArray, 2)
myArray(i, j).X = Int(Rnd() * 10000 + 1)
myArray(i, j).Y = Int(Rnd() * 10000 + 1)
Next
Next
mySub myArray
End Sub
Sub mySub(theArray() As myType)
i = Int(Rnd() * 20 + 1)
j = Int(Rnd() * 20 + 1)
MsgBox "MyArray(" & i & "," & _
j & ").X=" & theArray(i, j).X & _
vbNewLine & _
"MyArray(" & i & "," & _
j & ").Y=" & theArray(i, j).Y
End Sub
as an example.
--
Regards,
Tom Ogilvy
"Cactus [ÃÉÈËÇò]" <a@b.com> wrote in message
news:OY%23iFb7$EHA.3472@TK2MSFTNGP14.phx.gbl...
> Thank Bob
>
> I read VBA help, to define a 2D array use
>
> Dim myArray(20,20) as myType
>
> Now I get next block.
>
> How send the 2D Array as Argument?
>
> Sub mySub(theArray() As myType)
>
> End Sub
>
>
>
>
>
> "Bob Phillips" <phillips@tiscali.co.uk> ôÈëÓʼþ
> news:Oqv7tE7$EHA.3708@TK2MSFTNGP14.phx.gbl...
> > I think this is what you mean
> >
> > Dim myarray() As myType
> >
> > ReDim myarray(1 To 20)
> > myarray(1).X = 1
> > myarray(1).Y = 3
> >
> > Const cLen As Long = 20
> > Dim myArray2(cLen) As myType
> >
> > myArray2(20).X = 1
> > myarray(20).Y = 2
> >
> >
> > --
> > HTH
> >
> > Bob Phillips
> >
> > "Cactus [ÃÉÈËÇò]" <a@b.com> wrote in message
> > news:%23jEO4n4$EHA.3908@TK2MSFTNGP12.phx.gbl...
> > > I want to use a typed data of array.
> > >
> > > Type myType
> > > X As Long
> > > Y As Long
> > > End Type
> > >
> > > Dim myMatrix(20)(20) As myType
> > >
> > > But above code is wrong.
> > > How to that right VBA coding?
> > >
> > > Another question.
> > > Can I use a Variant array such as
> > >
> > > dim myVar as Long = 20
> > > Dim myMatrix(myVar) As myType
> > >
> > >
> > > Thanks...
> >
> >
>
Bookmarks