为什么在VBA中过滤SumProduct时会出现类型不匹配错误?

时间:2019-08-30 14:56:58

标签: excel vba

我有一个非常简单的Macro,但是对于我自己的一生,无法弄清楚为什么我继续遇到类型不匹配的情况。我已经尝试过其他版本的公式,并且遇到了同样的问题。

在一个工作表中,我有:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set Rng2 = Target
Call Sub1

End Sub

在工作簿中,我有一个模块,该模块具有:

Option Explicit

Public Rng2 As Range, Rng1 As Range

Sub Sub1()

Set Rng1 = Rng2.Offset(0, -2)

'Debug.Print Evaluate("=SumProduct(--(Rng1 > 0), Rng1, Rng2)")
'Debug.Print [SUM(if(Rng1 > 0, Rng1 * Rng2))]
Debug.Print Application.WorksheetFunction.SumProduct(--(Rng1 > 0), Rng1, Rng2)

End Sub

这些都不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

好,有人给了我答案,答案是:

Evaluate("=SUM(if(" & rng1.Address & "> 0," & rng1.Address & "*" & rng2.Address & "))")