ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Comparing Cell Contents using a Case statement (https://www.excelbanter.com/excel-programming/347929-comparing-cell-contents-using-case-statement.html)

Todd

Comparing Cell Contents using a Case statement
 
I am writing a macro that will compare cell contents, using a case statement.
Does a method exist where a comparison can be made on a portion of the cell
contents? For example, I might want to act on a cell that contains the word
"apple". The caveat is that "apple" is not the only thing in the cell
string. I tried to use "like" and "is", but received a compile error -
apparently "like" and "is" are not valid comparison operators. What else
could I try?

Tom Ogilvy

Comparing Cell Contents using a Case statement
 
if lcase(cell.Value) like "*apple*" then


from the immediate window:

ActiveCell.Value = "Johnny Appleseed"
? lcase(activecell.Value) Like "*apple*"
True
--
Regards,
Tom Ogilvy



"todd" wrote in message
...
I am writing a macro that will compare cell contents, using a case

statement.
Does a method exist where a comparison can be made on a portion of the

cell
contents? For example, I might want to act on a cell that contains the

word
"apple". The caveat is that "apple" is not the only thing in the cell
string. I tried to use "like" and "is", but received a compile error -
apparently "like" and "is" are not valid comparison operators. What else
could I try?




quartz[_2_]

Comparing Cell Contents using a Case statement
 
This doesn't use a Select...Case, but it works and may get you going:

Private Function CellCompare()

Dim rCell As Range
Dim sCheck As String
sCheck = "Apple"
For Each rCell In ActiveSheet.UsedRange.Cells
If UCase(rCell.FormulaR1C1) Like "*" & UCase(sCheck) & "*" Then
MsgBox rCell.Address & " contains the word apple!"
End If
Next rCell
End Function

HTH/

"todd" wrote:

I am writing a macro that will compare cell contents, using a case statement.
Does a method exist where a comparison can be made on a portion of the cell
contents? For example, I might want to act on a cell that contains the word
"apple". The caveat is that "apple" is not the only thing in the cell
string. I tried to use "like" and "is", but received a compile error -
apparently "like" and "is" are not valid comparison operators. What else
could I try?


JE McGimpsey

Comparing Cell Contents using a Case statement
 
Use a series of If...Then's instead. I.e., if your current comparison is:


Select Case foo
Case Is = "apple"
Msgbox "It's an apple"
Case Is = "pear"
Msgbox "It's a pear"
Case Else
Msgbox "It's some other fruit"
End Select

you can use

If foo Like "*apple*" Then
MsgBox "It's an apple"
ElseIf foo Like "*pear*" Then
MsgBox "It's a pear"
Else
MsgBox "It's some other frult"
End If

This has the disadvantage of evaluating the argument at each If/Elseif,
but it allows you to use the Like operator.


In article ,
"todd" wrote:

I am writing a macro that will compare cell contents, using a case statement.
Does a method exist where a comparison can be made on a portion of the cell
contents? For example, I might want to act on a cell that contains the word
"apple". The caveat is that "apple" is not the only thing in the cell
string. I tried to use "like" and "is", but received a compile error -
apparently "like" and "is" are not valid comparison operators. What else
could I try?


Tom Ogilvy

Comparing Cell Contents using a Case statement
 
Sorry, didn't read clearly:

Sub ABC()
l = "Johhny Appleseed"
Select Case True
Case InStr(1, l, "apple", vbTextCompare)
MsgBox "apple"
Case InStr(1, l, "pear", vbTextCompare)
MsgBox "Pear"
End Select


End Sub

--
Regards,
Tom Ogilvy


"Tom Ogilvy" wrote in message
...
if lcase(cell.Value) like "*apple*" then


from the immediate window:

ActiveCell.Value = "Johnny Appleseed"
? lcase(activecell.Value) Like "*apple*"
True
--
Regards,
Tom Ogilvy



"todd" wrote in message
...
I am writing a macro that will compare cell contents, using a case

statement.
Does a method exist where a comparison can be made on a portion of the

cell
contents? For example, I might want to act on a cell that contains the

word
"apple". The caveat is that "apple" is not the only thing in the cell
string. I tried to use "like" and "is", but received a compile error -
apparently "like" and "is" are not valid comparison operators. What

else
could I try?







All times are GMT +1. The time now is 10:02 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com