Err*_*004 2 excel vba sumproduct
我试图得到多个标准的总和:
从下图中可以看出,我设法在excel中使用SumProduct得到答案.当我尝试使用VBA获得与SumProduct相同的答案时,我会收到错误13类型不匹配.
图片:
有什么建议?
码:
Option Explicit
Sub test()
Dim Criteria1 As String, Criteria2 As String
Dim Lastrow As Long, Result As Double
Dim rng1 As Range, rng2 As Range, rng3 As Range
With ThisWorkbook.Worksheets("Sheet1")
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set rng1 = .Range("A3:A" & Lastrow)
Set rng2 = .Range("C3:C" & Lastrow)
Set rng3 = .Range("K3:K" & Lastrow)
Criteria1 = "Get"
Criteria2 = "Yes"
Result = Application.Evaluate("SumProduct(--(rng1 = Criteria1),--(rng2 = Criteria2),--rng3))")
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
三件事
rng1, rng2, rng3, Criteria1 and Criteria2是变量.当你把它们放在双引号内时,它们就变成了一个字符串.result为Double.将其声明为Variant.这导致了不匹配错误.=SUMPRODUCT(--($A$1:$A$3 = "Get"),--($C$1:$C$3 = "Yes"),--$K$1:$K$3).标准应该有双引号.这是你在尝试什么?(未经测试)
Result = Application.Evaluate("SumProduct(--(" & _
rng1.Address & _
" = """ & _
Criteria1 & _
"""),--(" & _
rng2.Address & _
" = """ & _
Criteria2 & _
"""),--" & _
rng3.Address & _
")")
Run Code Online (Sandbox Code Playgroud)