I'm writing a function in VBA to use in excel formula, it's ok if my function return a single value:
=MYVALUE(A1)
Now I wrote another function which returns an Array(1,2,3,4,...) and I replace my excel formula by Array formula:
{=MYARRAY(A1)}
But when I stretch the formula, all cells display the first value of my array. why ?
Here is my VBA source code (complement.xlam) :
Function MYVALUE(x as integer)
MYVALUE = 123
End Eunction
Function MYARRAY(x as integer)
MYARRAY = Array(10,20,30)
End Eunction
Array formulas need use like that
my VBA to split text in multi cells
Function EXPLODE_V(texte As String, delimiter As String)
EXPLODE_V = Application.WorksheetFunction.Transpose(Split(texte, delimiter))
End Function
Function EXPLODE_H(texte As String, delimiter As String)
EXPLODE_H = Split(texte, delimiter)
End Function
C3:C7
this define the vector direction.=EXPLODE_V($B$3;" ")
Press CTRL+SHIFT+ENTER ( INSTEAD of usual ENTER ) - this will define an ARRAY formula and will result in {=EXPLODE_V($B$3;" ")}
brackets around it (but do NOT type them manually!).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With