如何在vba函数中返回array()以在单元格中使用它数组公式(matricial formula):用于多单元格中的split texte

Alb*_*ban 4 arrays excel vba split excel-vba excel-formula

我正在VBA中编写一个函数以在excel公式中使用,如果我的函数返回一个值,则可以:

=MYVALUE(A1)
Run Code Online (Sandbox Code Playgroud)

现在我写了另一个返回数组(1,2,3,4,...)的函数,我用Array公式替换了我的excel公式:

{=MYARRAY(A1)}
Run Code Online (Sandbox Code Playgroud)

但是当我拉伸公式时,所有单元格都会显示我的数组第一个值.为什么?

这是我的VBA源代码(complement.xlam):

Function MYVALUE(x as integer)
    MYVALUE = 123
End Eunction

Function MYARRAY(x as integer)
    MYARRAY = Array(10,20,30)
End Eunction
Run Code Online (Sandbox Code Playgroud)

Alb*_*ban 6

数组公式需要像这样使用

我的VBA在多个单元格中拆分文本

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
Run Code Online (Sandbox Code Playgroud)
  1. 选择区域,C3:C7定义矢量方向.
  2. F2现场编辑并键入以下公式:=EXPLODE_V($B$3;" ")
  3. CTRL+ SHIFT+ ENTER(通常的INSTEADENTER) - 这将定义一个ARRAY公式,并在其{=EXPLODE_V($B$3;" ")}周围产生括号(但不要手动输入!).

    分裂细胞样本