读书人

VB偏门技术:CallByName 执行字符串在

发布时间: 2012-06-09 17:16:42 作者: rapoo

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必须在窗体或类模块中使用.
[解决办法]
窗体本身也是类,模块里不能用这个,
可以模块改成类,定义全局类对象

读书人网 >VB

热点推荐