私が知る限り、Excel では WorksheetFunctions を vba FUNCTION (サブまたはサブルーチンではありません) で使用できません。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
更新:私は問題を理解しました。以下の私の答えを見てください。