Você precisa percorrer o intervalo usando um intervalo
Option Explicit
Sub ScoreIt()
Dim myCell As Range
Dim myRange As Range
Set myRange = Range("M2:M10")
For Each myCell In myRange
If myCell = 6 Or myCell = 2 Or myCell = "a" Or myCell = "b" Then
myCell.Offset(, 1) = "Cash"
Else: myCell.Offset(, 1) = "fail"
End If
Next
End Sub
Edite myRange
para o intervalo desejado.
Basicamente, a instrução if
no VBA funciona de maneira diferente da função if
. Com a função é
IF(OR([this,that,the other]),Then,Else)
Considerando que o VBA if
é mais parecido com
[IF this] OR [IF that] OR [IF the other] Then, Else
Com base na sua descrição da sua fórmula, sua fórmula pode ser escrita
=IF(OR(M2=6,M2=2,M2="a",M2="b"),"cash","fail")
O que é mais semelhante ao VBA.
Mas, o que sua fórmula está realmente fazendo é procurar valores, então o VBA seria mais parecido com isso
Option Explicit
Sub ScoreIt()
Dim myCell As Range
Dim myRange As Range
Set myRange = Range("M2:M10")
For Each myCell In myRange
If InStr(1, myCell, 6) > 0 Or _
InStr(1, myCell, 2) > 0 Or _
InStr(1, myCell, "a") > 0 Or _
InStr(1, myCell, "b") > 0 Then
myCell.Offset(, 1) = "Cash"
Else: myCell.Offset(, 1) = "fail"
End If
Next
End Sub