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

=MYVALUE(A1)

现在我写了另一个函数,它返回一个 Array(1,2,3,4,...) 并且我用 Array 公式替换了我的 excel 公式:
{=MYARRAY(A1)}

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

这是我的 VBA 源代码 (complement.xlam):
Function MYVALUE(x as integer)
    MYVALUE = 123
End Eunction

Function MYARRAY(x as integer)
    MYARRAY = Array(10,20,30)
End Eunction

最佳答案

数组公式需要这样使用

我的 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
  • 选择区域 C3:C7 这定义了矢量方向。
  • 按F2当场编辑,输入如下公式:=EXPLODE_V($B$3;" ")
  • 按 CTRL+SHIFT+ENTER(代替通常的 ENTER ) - 这将定义一个数组公式并在它周围产生 {=EXPLODE_V($B$3;" ")} 括号(但不要手动输入它们!)。

  • 关于arrays - 如何在 vba 函数中返回 array() 以在单元格中使用它 数组公式(矩阵公式) : for split texte in multi cells,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14875480/

    10-14 10:09