Excel Sumif数组 – 工作表在vba中返回false

我有一个关于Excel中的sumif数组函数的问题。

当我input一个单元格并用作数组时,我的当前公式可以很好地工作,并且可以用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脚本。

下面是我遇到这个错误的部分。

当代码运行时,它会返回一个错误的语句,虽然如果我复制粘贴公式,它会返回正确的值。

 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 

林猜测它的语法错误,但我无法find呃逆。

提前致谢,

罗斯

试试这个:

 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))" 

在string中使用语音标记时需要小心 – 用两个""替代

另外,你在MATCH之后input了一个空格,这在工作表中会被纠正,但可能只是在VBA中引发一个错误。