У меня действительно два вопроса:
- Почему с этой строкой все в порядке -
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"),
Когда я добавляю дополнительные критерии в конец, у меня, похоже, с этим нет проблем.Очень сварливая мелочь.
Причина, по которой я спрашиваю, состоит в том, что я застрял, пытаясь добавить аргумент в код, который использует операторы OR, но я не уверен в правильном синтаксисе.Я пытаюсь подсчитать всех учеников, которые находятся на определенном уровне обучения, которые входят в определенную группу и которые «проходят».
Я пробовал несколько разных вещей, в том числе:
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")
Последний был самым близким, который я получил, поскольку вместо этого он фактически дает значение нольошибки в коде, но я все еще не совсем там.В начале я также попробовал утверждение «если тогда», чтобы отсеять оценку, в которой я нуждался изначально, но этот WAY не сработал и дал мне всевозможные ошибки времени выполнения, из-за которых у меня болела голова.
Я знаю, чтопроблема в аргументах OR, потому что эта строка работает:
AlgAdv = Application.WorksheetFunction.CountIfs(Range("AF:AF"), "GroupA", Range("AJ:AJ"), "Passing", Range("L:L"), "9")
Я видел несколько постов о формулах показателей в Excel, но меньше о показателях в VBA.Из них я видел только один, который ссылался на аргумент ИЛИ, но ответ мне не был ясен.
Есть рекомендации?