View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Post Tenebras Lux Post Tenebras Lux is offline
external usenet poster
 
Posts: 41
Default Evaluate (Variable Function Name)?

It's probably not possible, but I wonder if I can build a generic sub that
builds a function name at runtime using Evaluate (or another method)?

For example, I have a function CalcRSI which works fine.

CalcRSI(DataSeries as single, Periods as integer) as Variant

I have other functions CalcSMA, CalcEMA, CalcWhatever that take the same
arguments. Rather than explicitly call each one, separately, I would like to
build a generic sub that funnels all my functions (that use the same inputs).

So I'd like to replace
x = CalcRSI(same arguments)
y = CalcSMA(same arguments)
z= CalcEMA(same arguments)

with
strCalcName = "Calc" & strName

x = Evaluate(strCalcName & "(" & arg1 & "," & arg2 & ")" )

I have other reasons for wanting to simplify this process that are not
relevant here.

The above compiles ok, but at runtime, I get "Run-time error 13 Type
mismatch", at the x = Evaluate(...) line.

I guess Excel is telling me it can't be done, and yet, ... It really will
make a difference if I can do this, but I'm not optimistic.

Thanks in advance, and I won't shoot the messenger.