VBA中的SUMPRODUCT公式 [英] SUMPRODUCT Formula in VBA

查看:1993
本文介绍了VBA中的SUMPRODUCT公式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在VBA中使用以下 SUMPRODUCT 公式:

  = SUMPRODUCT((Sale!$ J $ 5:$ J $ 1048576 = C12)* Sale!$ D $ 5:$ D $ 1048576,Sale!$ M $ 5:$ M $ 1048576)
pre>

我使用这段代码,但它出现错误


运行时错误'13':类型不匹配




  Dim slWks As Worksheet 

set slWks = sheet(Sale)
ActiveSheet.Range(F12)。Value = _
Application.WorksheetFunction.SumProduct((slWks.Range(J5:J1048576)= _
ActiveSheet.Range(C12))* slWks.Range(D5:D1048576),slWks.Range(M5:M1048576))

如何使用vba将该公式写入其值?

解决方案

两个可能的简单解决方案,因为工作表函数方法不适用于您正在使用的大小的数组:



首先,添加公式,然后将其替换为其值



$($ F $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 5 $ D $ 1048576,售价$ M $ 5:$ M $ 1048576)$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $

第二,使用评估

  With Activesheet 
.range(F12)。Value2 = .Evaluate(SUMPRODUCT((Sale!$ J $ 5:$ J $ 1048576 = C12)* Sale!$ D $ 5:$ D $ 1048576,Sale $ M $ 5:$ M $ 1048576))
结束


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

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"))

How can I write that formula with its values using vba?

解决方案

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

Second, use 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆