VBA 中的 SUMPRODUCT 公式 [英] SUMPRODUCT Formula in VBA
本文介绍了VBA 中的 SUMPRODUCT 公式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在 VBA 中使用以下 SUMPRODUCT
公式:
I want to use following SUMPRODUCT
formula in VBA:
=SUMPRODUCT((Sale!$J$5:$J$1048576=C12)*Sale!$D$5:$D$1048576,Sale!$M$5:$M$1048576)
我使用了这个代码,但它给出了一个错误
I used this code but it gives an error
运行时错误13":类型不匹配
Run-time error '13': Type mismatch
Dim slWks As Worksheet
Set slWks = Sheets("Sale")
ActiveSheet.Range("F12").Value = _
Application.WorksheetFunction.SumProduct((slWks.Range("J5:J1048576") = _
ActiveSheet.Range("C12")) * slWks.Range("D5:D1048576"), slWks.Range("M5:M1048576"))
如何使用 vba 编写带有其值的公式?
How can I write that formula with its values using vba?
推荐答案
两种可能的简单解决方案,因为 worksheetfunction 方法不适用于您正在使用的大小的数组:
Two possible simple solutions, given that worksheetfunction methods won't work with arrays the size that you are using:
首先,添加公式,然后将其替换为其值
First, add the formula and then replace it with its value
With activesheet.Range("F12")
.Formula =" =SUMPRODUCT((Sale!$J$5:$J$1048576=C12)*Sale!$D$5:$D$1048576,Sale!$M$5:$M$1048576)"
.Value2 = .Value2
End With
其次,使用Evaluate
:
With Activesheet
.range("F12").Value2 = .Evaluate("SUMPRODUCT((Sale!$J$5:$J$1048576=C12)*Sale!$D$5:$D$1048576,Sale!$M$5:$M$1048576)")
End With
这篇关于VBA 中的 SUMPRODUCT 公式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文