我对excel中的sumif数组函数有疑问。
我当前的公式在键入单元格时效果很好,并用作数组Ctrl + Shift + Enter,并且双击填充列。
公式为=SUMIFS(T:T,A:A,A2,C:C,"<"&OFFSET($H$1,MATCH(1,(A:A=A2)*(H:H=[IPE.xlsm]Overview!$C$3),0),-5))
我的问题是当我尝试将此公式集成到我当前的vba脚本中时。
以下是我遇到此错误的部分。
当代码运行时,它会返回一个false语句,但是如果我复制粘贴公式,它会返回正确的值。
Sub Enter_Array_Formulas()
Range("W2").FormulaArray = "=SUMIFS(T:T,A:A,A2,C:C," < "&
OFFSET($H$1,MATCH (1,(A:A=A2)*(H:H=[IPE.xlsm]Overview!$C$3),0),-5))"
Range("U2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 2).Select
Range(Selection, Selection.End(xlUp)).Offset(0, 0).Select
Selection.FillDown
End Sub
我猜测它的语法错误,但我无法找到打嗝。
提前致谢,
罗斯答案 0 :(得分:0)
请改为尝试:
Range("W2").FormulaArray = "=SUMIFS(T:T,A:A,A2,C:C,""<""&OFFSET($H$1,MATCH(1,(A:A=A2)*(H:H=[IPE.xlsm]Overview!$C$3),0),-5))"
在字符串中使用语音标记时需要小心 - 使用两个""
代替
此外,您在MATCH
之后输入了一个空格,这将在工作表上为您更正,但可能只是在VBA中引发错误。