简体   繁体   English

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

[英]Why am I getting a Type Mismatch Error when filtering SumProduct in VBA?

I have a pretty simple Macro but for the life of me, can't figure out why I keep on getting type mismatch. 我有一个非常简单的Macro,但是对于我自己的一生,无法弄清楚为什么我会继续遇到类型不匹配的情况。 I have tried other versions of the formula and same issue. 我已经尝试过该公式的其他版本以及相同的问题。

In one worksheet,I have: 在一个工作表中,我有:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set Rng2 = Target
Call Sub1

End Sub

In the workbook, I have a module that has: 在工作簿中,我有一个包含以下内容的模块:

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

None of those work. 这些都不起作用。

Thanks! 谢谢!

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM