将数组传递给excel函数

时间:2016-12-16 13:37:03

标签: excel excel-vba excel-formula vba

我有一个像这样的公式

SUMIFS(CURR_COUNT;MDL;"ALT";MDLCD;{13117;13417};RG;"44";CURR_OPTION_GROUP;"**")

我需要从单元格中拆分字符串并将数组传递给公式而不是{13117;13417} 我可以在VBA中解析字符串,例如在excel中,但我不知道如何将它传递给公式。

我在VBA写了这段代码的和平

Function GetArray(str) As Variant
    GetArray = Split(str, ",")
End Function 

并添加到公式

CURR_COUNT;MDL;"ALT";CURR_MDLCD;GetArray(BF22);RG;"44";CURR_OPTION_GROUP;"**")

但它只使用数组的第一个元素。

2 个答案:

答案 0 :(得分:0)

您可以创建自定义功能,例如

Function rangetoarray(rng as range) 
     i=""
     For each cell in rng
          i=i&";"&cell
     Next
  rangetoarray=i
End Function

然后在你的sumif函数中使用它并检查它是否正常工作

答案 1 :(得分:0)

输入此公式为.value

FormulaArray

同时输入 CTRL + SHIFT + ENTER 输入FormulaArrays,你会看到 =SUM(SUMIFS(CURR_COUNT;MDL;"ALT";MDLCD;GetArray(BF22);RG;"44";CURR_OPTION_GROUP;"**")) {