我真的有两个问题:
Result = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing")
但这不是吗?
Result = Application.WorksheetFunction.CountIfs(Range("L:L"), "11", (Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing")
当我尝试在前面添加额外的条件时,出现错误,提示此部分有一个预期的括号代替逗号-
(Range(:AF:AF"),
当我在末尾添加额外条件时,似乎没有问题。脾气暴躁的小东西。
我尝试了几种不同的方法,包括:
Result = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing", Range("L:L"), "<>" "7" Or "8")
还有这个
Result = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing", Range("L:L"), "9" Or "10" Or "11" Or "12")
最后一个是我得到的最接近的,因为它实际上给出的值为零,而不是代码中的错误,但我仍然不尽然。 我还在开始时尝试了if-then语句,以清除最初需要的等级,但是WAY无效,并且给了我各种运行时错误,这使我很头疼。
我知道问题出在OR参数中,因为这行有效:
AlgAdv = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing", Range("L:L"), "9")
我在Excel中看到了几篇有关countifs公式的文章,但在VBA中却很少看到有关countifs的文章。在这些变量中,我仅看到一个引用OR参数的变量,但答案对我来说并不明确。
有什么建议吗?
答案 0 :(得分:2)
您可以执行以下操作:
Result = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", _
Range("AJ:AJ"), "Passing", _
Range("L:L"), ">=9", _
Range("L:L"), "<=12")
答案 1 :(得分:0)
我想知道此链接是否可以帮助您:https://stackoverflow.com/a/8726792/11437092(当然,除非您已经看到了该链接)。
似乎您可以根据所需的OR参数的数量使用单独的COUNTIF函数,然后将它们简单地相加即可。但是,这可能不是最有效的方法。