View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
[email protected] baobob@my-deja.com is offline
external usenet poster
 
Posts: 100
Default Here's how to require user to pass a particular param type to a cellfunction (intercepting #VALUE).

I want to share something that took me some hrs. to learn, to possibly
spare others my pain.

I wrote a function the user can use in a cell, e.g.:

public function Plural(ByVal S as <immaterial here) as string
Plural = S & "s"
end function

But I can only handle an address or range name, not a literal string,
i.e.:

=Plural($A$1) not =Plural("apple")

I think I've found the solution by making the param a Variant and
using TypeName:

public function Plural(ByVal S as Variant) as string
if TypeName(S) = "Range" then
Plural = W & "s"
else
Plural = "Paisan, you sick in da head? Use a range, not a literal
string."
endif
end function

***

Pa(ren)thetically, what the hell is with VarType?

When TypeName is "Range", it's 8. But when it's "String", it's ... 8.

I mean, Douglas Adams's 42 would be more informative.

***