SumProduct公式错误13类型不匹配

Err*_*004 2 excel vba sumproduct

我试图得到多个标准的总和:

  • "得到"(A栏)
  • "是"(C栏)
  • 总和K.

从下图中可以看出,我设法在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)

Sid*_*out 5

三件事

  1. rng1, rng2, rng3, Criteria1 and Criteria2是变量.当你把它们放在双引号内时,它们就变成了一个字符串.
  2. 你已宣布resultDouble.将其声明为Variant.这导致了不匹配错误.
  3. 你实际尝试的公式是=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)