VB偏门技术:CallByName 执行字符串在模块中无法成功!!!
这几天因工作需要,程序要执行字段中的字符串,此字符串在程序中有对应的涵数
Function ReturnThis()
ReturnThis =123
End Function
runcode=rs("runcode") 得到的就是"ReturnThis"
经测试,在窗体中使用就可以
Request = CallByName(Me, runcode, VbMethod)
但如果这些代码是在类块里进行的,就不行了。Me它无法代表Module1,
Request = CallByName(XXXXX, runcode, VbMethod)
工程为ActiveX DLL 没有窗体,Module1我试了不行,XXXX处要用什么代替当前对像,Me? this? app? vba? 谢谢了。
[解决办法]
- VB code
'能不能考虑先把你要执行的函数写到一个固定的类里?Class TestClass function ReturnThis() as integer return 123 end functionend class'然后使用时先实例化你的类public sub test(byval runcode as string) dim oCls as new TestClass() dim request as object request = CallByName(oCls, runcode, VbGet)end sub
[解决办法]
以前好像遇到过这个问题, Callbyname必须在窗体或类模块中使用.
[解决办法]
窗体本身也是类,模块里不能用这个,
可以模块改成类,定义全局类对象