Application.Worksheetfunction Sumproduct问题

我有一个Excel工作表,我正在尝试使用countifs公式来计算满足多个条件的数字或logging,但是在其中一列中有多个标准,所以我将SUMPRODUCT和COUNTIFS函数一起使用。

我在工作表中正常工作,但是我不知道如何在VBA中使用它。

这是我试过的:

Dim lastrow As Long lastrow = Sheet2.Cells(Sheet2.Rows.Count, "M").End(xlUp).Row FirstDate = Sheets("Sheet1").Range("C7") SecondDate = Sheets("Sheet1").Range("E7") Application.Worksheetfunction.Sumproduct(CountIfs(Sheet2.Range("E2:E" & lastrow), ">=" & FirstDate, Sheet2.Range("E2:E" & lastrow), "<=" & SecondDate, Sheet2.Range("P2:P" & lastrow), {"John";"James";"Peter"})) 

使用上述公式时,我总是收到一个错误。 你能告诉我我做错了什么吗?

提前致谢。

编辑:这是我试图模仿的公式:

!= SUMPRODUCT(COUNTIFS(Sheet 2中E2:E1000000, “> =” &Sheet 1中C7,Sheet2的E2:E1000000, “<=” &Sheet 1中E7,Sheet2的E2:!!E1000000,{ “约翰”; “詹姆斯”;“彼得“}))

我不希望VBA将这个公式插入到单元格中,我宁愿计算它的值,然后将结果插入到所选单元格中。

似乎为我工作:

 Sub Tester() Dim v, wsf Dim lastrow As Long lastrow = Sheet2.Cells(Sheet2.Rows.Count, "M").End(xlUp).Row Set wsf = Application.WorksheetFunction v = Application.WorksheetFunction.SumProduct(wsf.CountIfs( _ Sheet2.Range("E1:E" & lastrow), ">=" & Sheet1.Range("C7").Value, _ Sheet2.Range("E1:E" & lastrow), "<=" & Sheet1.Range("E7").Value, _ Sheet2.Range("P1:P" & lastrow), Array("John", "James", "Peter"))) Debug.Print v End Sub