VBA中SUM(SUMIF多条件求和报错1004及结果异常问题
VBA中SUM(SUMIF多条件求和的错误解决方法
解决Run-time error 1004错误
原FormulaR1C1代码的问题出在引用区域的语法顺序错误:R1C1样式中,区域的写法是R[行号]C[列号]:R[行号]C[列号],你把central!C[1]R3的行和列顺序写反了,导致Excel无法识别引用区域。
修正后的代码:
Worksheets("units").Cells(i, j).FormulaR1C1 = "=pws!R[0]C[0]+SUM(SUMIF(pws!R1C3:R1C" & (2 + numlxp) & ",central!R3C[1]:R" & (2 + numatt) & "C[1],pws!R[0]C3:R[0]C" & (2 + numlxp) & "))"
解决隐式交集@导致返回0的问题
在Excel动态数组版本中,直接用.Formula赋值数组公式时,Excel会自动添加@隐式交集,把数组运算降级为单个单元格引用,所以返回0。
解决方法是改用.FormulaArray属性赋值,强制设置为数组公式:
Worksheets("units").Cells(2, 2).FormulaArray = "=SUM(SUMIF(pws!C1:L1,central!C3:C6,pws!C2:L2))"
旧版本Excel中,数组公式需要手动按Ctrl+Shift+Enter,VBA里同样用.FormulaArray来实现这一效果。
内容的提问来源于stack exchange,提问作者CK7
相关产品推荐
相关产品推荐

