Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
function with matrix
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
function with matrix
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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
function with matrix
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 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
function with matrix
OK Rick! I've dona it and worked perfectly!
Thanks a lot for your promp response! KR! -- atrep "Rick Rothstein" wrote: 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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Read Matrix via function | Excel Programming | |||
Funtion as Matrix function? | Excel Programming | |||
Can I write a function like matrix function? | Excel Programming | |||
UDF function on Matrix | Excel Programming | |||
VBA function return matrix? | Excel Programming |