微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带循环的Sumproduct VBA

如何解决带循环的Sumproduct VBA

我知道这个问题已经以某种形式被问到了恶心,但是我所有的谷歌搜索并没有引导我解决。我想在带有移动条件引用的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

所以我知道编码不起作用,但是有人可以通过找出可以的代码来帮助我吗?

非常感谢!

解决方法

可以同时分配多个公式,并且将自动调整相对(无$)行/列的引用:

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 举报,一经查实,本站将立刻删除。