Help: Compile error: type mismatch: array or user defined type expected

L

lvcha.gouqizi

Hi there,

I defined a type named testArray and student() as an array of testArray
type. The compiler always reports "array or user defined type expected"
compile error no matter how I give the array parameter to the function.

Public Type testArray
age() As Integer
End Type


Sub calling()
Dim student() As testArray
called (student)
End Sub

Sub called(ByRef temparray() As testArray)
temparray(1).age(1) = 20
End Sub

What's wrong with called(student)?

I also tried called(student()). It doesn't work either.
 
J

Jim Thomlinson

First things first. Get rid of the brackets for the Called sub. They will
mess things up. You can either have

Call Called(student())
or
Called Sutdent()

Secondly you need to define the array sizes. Either explicitly when they are
created or through a redim

Public Type testArray
age(5) As Integer
End Type


Sub calling()
Dim student(10) As testArray

called student()
End Sub

Sub called(ByRef temparray() As testArray)
temparray(1).age(1) = 20
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top