Test if a Cell contains either of 12 different words

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I'm trying to test if a cell contains any of 12 different words (note the
words may be embedded in a phrase). Is there an easier way than to write 12
if statements?

Thanks.
 
Hi Joy

Try the Select Case statement

Not sure how to test with embedded text though - something for me to play
with and find out

HTH
 
The embedded text is what I'm having trouble with ... I tried using "*text*"
with Select Case and it doesnt work, the * are recognized literally as *.
 
if instr(1,cell.value,"abc",vbTextcompare) > 0 then
' contained in cell
 
In a worksheet, you can use something like:

=SUM(COUNTIF(B2,{"*APPLE*","*BUT*","*CAR*","*DAM*","*EXCEL*","*FOR*","*GO*","*HI*","*AND*","*THE*","*DOG*","*OR*"}))

this could be adapted to code as well.

Demo'd from the immediate window:

?
Evaluate("SUM(COUNTIF(B2,{""*APPLE*"",""*BUT*"",""*CAR*"",""*DAM*"",""*EXCEL*"",""*FOR*"",""*GO*"",""*HI*"",""*AND*"",""*THE*"",""*DOG*"",""*OR*""}))")
4
? Range("B2").Value
Go for an apple
 
What exactly does the evaluate do?

Tom Ogilvy said:
In a worksheet, you can use something like:

=SUM(COUNTIF(B2,{"*APPLE*","*BUT*","*CAR*","*DAM*","*EXCEL*","*FOR*","*GO*","*HI*","*AND*","*THE*","*DOG*","*OR*"}))

this could be adapted to code as well.

Demo'd from the immediate window:

?
Evaluate("SUM(COUNTIF(B2,{""*APPLE*"",""*BUT*"",""*CAR*"",""*DAM*"",""*EXCEL*"",""*FOR*"",""*GO*"",""*HI*"",""*AND*"",""*THE*"",""*DOG*"",""*OR*""}))")
4
? Range("B2").Value
Go for an apple
 
It evaluates the string passed to it as if it was entered in a cell in the
worksheet.
 
I see. Also, why do you use ""*Car*"" with double quotes instead of "*Car*"
which works normally for Countif statements?
 
double quotes embedded in a string must be doubled to be interpreted as a
double quote character and not the string delimiter.
 
I see. Thanks so much for the solution. One more quick question, since
Evaluate passes the string as if it was entered in the cell, how would I
refer to the cell (in this case B2) in the Countif statement with a cell
variable?
 
Because the quotes are within a quotes enclosed string, so you need to stop
them acting as ending and closing quotes. Doubling does that.

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
Evaluate("SUM(COUNTIF(" & ActiveCell.Address &
",{""*APPLE*"",""*BUT*"",""*CAR*"",""*DAM*"",""*EXCEL*"",
""*FOR*"",""*GO*"",""*HI*"",""*AND*"",""*THE*"",""*DOG*"",""*OR*""}))")
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top