【发布时间】:2020-09-01 22:12:12
【问题描述】:
我知道有人以某种形式提出过这个问题,但我所有的谷歌搜索都没有让我找到解决方案。我想在带有移动标准引用的 VBA 循环中使用 Sumproduct。我知道 Sumproduct 在 VBA 中的工作方式与在电子表格中的工作方式不同。我试图复制的公式如下:
=Sumproduct([KNA_Amt]*--([KNA_Dt]=h$25)*--([KNA_Cat]=$b47)*--([KNA_Prgm]=$D$8))
在工作表中,这将被拖下 6 行并跨越 12 列。
在 VBA 中,我有以下代码,这显然不起作用...
sub CalcualteSFA()
Dim r As Long
Dim c As Long
r = 87: c = 8
For for_col = 1 To 12
Cells(r, c) = WorksheetFunction.SumProduct([KNA_Amt]*--([KNA_Dt]=Cells(25, c))*--([KNA_Cat]=cells(r,2))*--([KNA_Prgm]=cells(8,4))
r=r+1
next
r=87
c=c+1
next
end sub
所以我知道编码不起作用,但有人可以帮我找出一个可以解决的代码吗?
非常感谢!
【问题讨论】:
-
看起来 SUMIFS 在这里会做得更好。
-
嗨@ScottCraner——我试过Sumifs,但问题是Amt数据跨越了不同的列。我认为 Sumifs 只喜欢引用一列,对吗?还是我弄错了?
标签: excel vba loops sumproduct