View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein Rick Rothstein is offline
external usenet poster
 
Posts: 5,934
Default function with matrix

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).

--
Rick (MVP - Excel)


"xavi garriga" wrote in message
...
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!
--
atrep


"Rick Rothstein" wrote:

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()

--
Rick (MVP - Excel)


"xavi garriga" wrote in message
...
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!
--
atrep