Evaluate (Variable Function Name)?
Would any ideas here help?
Sub Demo()
Dim arg
Dim j
arg = 5
For j = 1 To 2
Run "MyProc" & j, arg + j
Next j
End Sub
Sub MyProc1(k)
MsgBox "Here with " & k
End Sub
Sub MyProc2(k)
MsgBox "In Procedure 2 with " & k
End Sub
--
HTH. :)
Dana DeLouis
Windows XP, Office 2003
"Post Tenebras Lux" wrote in
message ...
I forgot to mention that if I put everything inside the evaluate function
into a string variable, and then try Evaluate(strWholeExpression) then it
compiles, it runs, but just exits the sub (I presume out of disgust for my
technique) at this line without any error messages.
"Post Tenebras Lux" wrote:
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.
|