View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default TypeName function

When comparing strings, I usually use StrComp rather than the "="
operator. With StrComp, you can specify whether the comparison is
case-sensitive, regardless of the Option Compare setting of the
module. E.g.,

If StrComp(VarName, "AbCd", vbTextCompare) = 0 Then
' strings match
Else
' string do not match
End If

Cordially,
Chip Pearson
Microsoft MVP
Excel Product Group
Pearson Software Consulting, LLC
www.cpearson.com
(email is on the web site)
USA Central Daylight Time (-5:00 GMT)


On Sun, 12 Oct 2008 15:36:00 +0100, "Peter T" <peter_t@discussions
wrote:

Along similar lines, to avoid case sensitivity with string comparisons could
head the module -

Option Compare Text

In general though best not to use that without specific reason.

Regards,
Peter T

"Rick Rothstein" wrote in message
...
As others have pointed out, you needed to use "String", not "string".
Whenever you do a logical test against a String constant (text within
quote marks), you must always be wary of case sensitivity. Some functions
(like InStr or Replace) have optional arguments whereby you can make the
comparison case insensitive; but others (like TypeName) do not.

--
Rick (MVP - Excel)


"Mike H" wrote in message
...
Hi,

Try this. Note a few less parenthesis

Sub Test()
'The active cell contains the string "ABC"
MsgBox ActiveCell.Value 'Displays 'ABC'
MsgBox TypeName(ActiveCell.Value) 'Displays 'String'
MsgBox TypeName(ActiveCell.Value) = TypeName("String") 'Displays
'FALSE'
End Sub

Mike

"ArthurJ" wrote:

Why does the last message box return FALSE when testing a cell for a
string?
I have the same problem checking for numeric values such as Double.

Sub Test()
'The active cell contains the string "ABC"
MsgBox (ActiveCell.Value) 'Displays 'ABC'
MsgBox (TypeName(ActiveCell.Value)) 'Displays 'String'
MsgBox (TypeName(ActiveCell.Value) = "string") 'Displays 'FALSE'
End Sub