function with matrix

X

xavi garriga

Dears;

I have a Nightmare with a macro!! I don' know where is the mistake...the
program is a little bit big, so I'll try to do a resume of the code.

First of all i've created a newtype of variable called NewType (I'm not so
much original...):

Here you are the type:

Type NewType
Peca As String
ri As Integer
pi As Integer
qi As Integer
End Type

Inside a macro I call a function like this:

seq = pas_2(C, T_Treballs())
Where C is an integer and T_Treballs() is NewType

The function is declared:
Public Function pas_2(carrega As Integer, vector() As NewType) As NewType

There is a moment inside the function where there is this code:
y = 1
ReDim Preserve pas_2(y)

and a message like this appear:

"Compilation mistake
The program was waiting for a matrix" (or something like this, I work with a
spanish version and I've translated the message)

Why pas_2(y) is not a matrix inside the function??

Thanks a lot!
 
R

Rick Rothstein

I didn't test this, but my guess would be that your function is not declared
to return an array of NewType, so you can't use the ReDim function on it.
Add an empty set of parentheses to the end of your function declaration and
see if that clears things up...

Public Function pas_2(carrega As Integer, vector() As NewType) As NewType()
 
X

xavi garriga

Thanks Rick for your promp response!

The problem has been solved, now it seems to ReDim the matrix. However a new
problem apears. The following step inside the function is:

pas_2(y).Peca = vector(x).Peca

and this message appears:

"the argument is not optional". It seems that i'm recalling the function
inside the function...

Sure these mistakes are stupid mistakes, but this is the first time working
with functions amd matrix at the same time...

Before I forgot to say that If there is something which I haven't clarified
enough please, ask. I'm not englishspeaker and sure I do lots of mistakes
that can cause missunterstandings.

Thanks a lot once more!
 
R

Rick Rothstein

Usually, when dealing with a function that returns an array, it is better to
Dim a "working" array inside your function, do all your work with it and
then, at the end, assign your working array to the function name (I think
that will also work with an array of Types).
 
X

xavi garriga

OK Rick! I've dona it and worked perfectly!
Thanks a lot for your promp response!
KR!
 

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