我面临一个我无法解释的奇怪问题。
我将 Worksheet 函数与 CountIfs 公式一起使用,并且我还使用 Sumproduct 来使用数组。
但是,每次我尝试使用定义为数组的 2 个不同变量时,我都会得到不正确的结果。
让我解释,
当我使用:
Dim lastrow As Long
Dim wsf
lastrow = Sheet2.Cells(Sheet2.Rows.Count, "M").End(xlUp).Row
Set wsf = Application.WorksheetFunction
Doctors = Array("Peter","Sam","Henry")
Emergency = Array("Y","N")
a1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), Doctors, Sheet2.Range("M2:M" & lastrow), Emergency))
我得到 a1 的错误结果。
但是,当我尝试:
a1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), Doctors, Sheet2.Range("M2:M" & lastrow), "Y"))
b1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), Doctors, Sheet2.Range("M2:M" & lastrow), "N"))
Final = a1 + b1
或者
a1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), "Peter", Sheet2.Range("M2:M" & lastrow), Emergency))
b1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), "Sam", Sheet2.Range("M2:M" & lastrow), Emergency))
c1 = Application.WorksheetFunction.SumProduct(wsf.CountIfs(Sheet2.Range("P2:P" & lastrow), "Henry", Sheet2.Range("M2:M" & lastrow), Emergency))
Final = a1 + b1 + c1
我得到了最终的正确结果。
有什么方法可以使第一个公式起作用,或者 vba 是否根本不允许将多个数组变量用作单个 countifs 函数中的标准。
我想也许我应该声明 Doctors 和 Emergency 变量,但到目前为止还没有运气。
有什么建议么?