Olá, @leonardo.
O primeiro argumento (Intervalo) da função CONT.SE do Excel não aceita nenhum outro tipo de argumento que não seja Intervalo normal mesmo (Range). Portanto, vc só poderá usar uma matriz ou outro tipo de variável no segundo argumento.
No entanto, no VBA vc pode usar o próprio Range diretamente em vez de atribuir primeiro a uma variável, caso queira. Caso contrário, tem que atribuir objeto Range usando Set.
Alguns exemplos de como vc poderia atingir seu objetivo:
Sub Teste()
Dim Intervalo As Range '(ou continuar como As Variant)
Dim Criterio As Variant
Dim Contar As Variant '(ou As Long)
Set Intervalo = Range("A1:A14")
Criterio = Range("C1").Value
Contar = Application.CountIf(Intervalo, Criterio)
'Ou também, diretamente na fórmula:
Contar = Application.CountIf([A1:A14], [C1])
'Vc também poderia fazer via Evaluate:
Contar = [CountIf(A1:A14,C1)]
End Sub
Postado : 04/04/2022 11:04 am