据我所知,Excel 不会让您在 vba FUNCTION(不是 SUB 或 SUBROUTINE)中使用 WorksheetFunctions。有没有办法在 FUNCTION 中使用 WorksheetFunctions?如果没有,是否有简单的替代方法可以获得与 COUNTA 函数相同的结果?有谁知道为什么 WorksheetFunctions 似乎无法与自定义函数相处?
Function CountIfsFast(range1 As range, val1, Optional range2 As range, Optional val2)
rangesize = WorksheetFunction.CountA(range1)
range1array = RangetoArray(range1)
range2array = RangetoArray(range2)
matchcount = 0
For i = 0 To rangesize
If range1array(i) = val1 Then
If range2array(i) = val2 Then
matchcount = matchcount + 1
End If
End If
Next i
CountIfsFast = matchcount
End Function
更新:我想出了问题,有点。请看下面我的回答。