excel 插入Sum(在VBA中使用公式R1C1对多个条件求和

gev0vcfq  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(417)

无法获取SUM(SUMIF以与VBA一起使用,将产生“运行时错误1004”。SUM(SUMIF通常用于Excel中使用多个条件进行求和。这是我的公式。

Worksheets("units").Cells(i, j).FormulaR1C1 = "=pws!R[0]C[0]+SUM(SUMIF(pws!R1C3:R1C" & (2 + numlxp) & ",central!C[1]R3:C[1]R" & (2 + numatt) & ",pws!R[0]C3:R[0]C" & (2 + numlxp) & "))"

我还尝试了一个使用OFFSETS而不是R1 C1的版本。OFFSETS版本在Excel本身中工作,但在VBA中不工作。
然后,我尝试简化为以下内容,以查看SUM(SUMIF是否存在问题,特别是在VBA中,但它返回了一个带有@的公式,表示隐式相交,并给出了错误的结果“0”:

Worksheets("units").Cells(2, 2).Formula = "=SUM(SUMIF(pws!C1:L1,central!C3:C6,pws!C2:L2))"
tzdcorbm

tzdcorbm1#

尝试将SUMPRODUCT与一元运算符结合使用:

黄色单元格将是条件(在您的示例中,central!C3:C6)。
单元格C6中的公式为:

=SUMPRODUCT(--(COUNTIF($A$6:$A$7,$C$1:$L$1)>0)*$C$2:$L$2)

单元格C7中的公式为:

=SUMPRODUCT(--($C$1:$L$1=$A$6:$A$7)*$C$2:$L$2)

第一个公式忽略条件中的重复值,第二个公式不忽略。第二个公式更容易实现,但如果您的条件有重复值,它将复制结果,所以要小心并明智地选择。就像示例一样,注意如果我的两个条件相同,则每个公式返回不同的输出:

无论如何,当你完成选择,你应该能够实现这在VBA代码如下(或种):

Worksheets("units").Cells(2, 2).Formula = "=SUMPRODUCT(--(COUNTIF(central!$C$3:$C$6,pws!$C$1:$L$1)>0)*pws!$C$2:$L$2)"

SUMPRODUCT and Double Unary Operators

相关问题