Can I use a variable contain the name of a sub or function to call it?
I would like to be able to decide at run time which of several subs to
call and, when writing the code, it may be impossible to even know the name of the sub. That is, I cannot use code like: if i 5 then call This() else call That() endif because I have no idea what the names of "This" or "That" may be. I would like to do something equivalent to: Sub MyCode(SubName as WhateverIsNeeded) Call SubName End Sub Thanks for any help. |
Can I use a variable contain the name of a sub or function tocall it?
A bit more clarification??
On Nov 23, 8:35*am, wrote: I would like to be able to *decide at run time which of several subs to call and, when writing the code, it may be impossible to even know the name of the sub. That is, I cannot use code like: * * * * if i 5 then * * * * * * * * call This() * * * * else * * * * * * * * call That() * * * * endif because I have no idea what the names of "This" or "That" may be. I would like to do something equivalent to: * * * * Sub MyCode(SubName as WhateverIsNeeded) * * * * * * * * Call SubName * * * * End Sub Thanks for any help. |
Can I use a variable contain the name of a sub or function to call it?
Look at the 'CallByName' function.
Is there some reason why you can't include the module at design time? In either scenario you cite, you still need to know the name of the procedure to call so why does it matter how you implement this? We need more info to better help you... -- Garry Free usenet access at http://www.eternal-september.org ClassicVB Users Regroup! comp.lang.basic.visual.misc |
Can I use a variable contain the name of a sub or function to call it?
wrote in message
... I would like to be able to decide at run time which of several subs to call and, when writing the code, it may be impossible to even know the name of the sub. Take a look at the help page for Application.Run. Be sure the limitations fit your needs. |
Can I use a variable contain the name of a sub or function tocall it?
hi,
Sub test() Dim mc As String, nb As Integer nb = Application.InputBox(prompt:="Choose a number between 1 and 10", Type:=1) If nb 5 Then mc = "This" Else mc = "That" Call MyCode(mc) End Sub Sub MyCode(SubName As String) Application.Run (SubName) End Sub Sub This() MsgBox "This" End Sub Sub That() MsgBox "That" End Sub -- isabelle |
All times are GMT +1. The time now is 11:05 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com