如何解决带循环的Sumproduct VBA
我知道这个问题已经以某种形式被问到了恶心,但是我所有的谷歌搜索并没有引导我解决。我想在带有移动条件引用的VBA循环中使用Sumproduct。我知道Sumproduct在VBA中的工作原理与在电子表格中不同。我要复制的公式如下:
=Sumproduct([KNA_Amt]*--([KNA_Dt]=h$25)*--([KNA_Cat]=$b47)*--([KNA_Prgm]=$D$8))
在工作表中,该行将被拖下6行并跨越12列。
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
所以我知道编码不起作用,但是有人可以通过找出可以的代码来帮助我吗?
非常感谢!
解决方法
可以同时分配多个公式,并且将自动调整相对(无$
)行/列的引用:
Sub CalcualteSFA()
Dim r As Range
Set r = [H87:S92]
r.Formula = "=Sumproduct([KNA_Amt]*--([KNA_Dt]=h$25)*--([KNA_Cat]=$b47)*--([KNA_Prgm]=$D$8))"
r.Value = r.Value ' optional to convert the formulas to values
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。