Vbscript 如果在运行时使用LoadFunctionLibrary加载函数,则GetRef不工作

Vbscript 如果在运行时使用LoadFunctionLibrary加载函数,则GetRef不工作,vbscript,qtp,Vbscript,Qtp,我试图从函数库(在运行时加载)执行函数。如果我使用Eval或Execute来运行函数,那么一切都正常,但我想使用GetRef,如和中所述 QTP代码片段 Call LoadFunctionLibrary("/../Libraries/Tests.vbs") Set objCon = CreateObject("ADODB.Connection") objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & "C:\_Wo

我试图从函数库(在运行时加载)执行函数。如果我使用
Eval
Execute
来运行函数,那么一切都正常,但我想使用
GetRef
,如和中所述

QTP代码片段

Call LoadFunctionLibrary("/../Libraries/Tests.vbs")
Set objCon = CreateObject("ADODB.Connection")
objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & "C:\_Work\WorkingFolder\TestList.xlsx" & "';Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"
Set objRS = objCon.Execute("Select * from [Sheet1$] Where [To Execute] = 'YES'")
Do While Not objRS.EOF
     'Eval( objRS.Fields(1).Value)
     'Execute objRS.Fields(1).Value

     Set tcFunc = GetRef(objRS.Fields(1).Value)
     tcFunc
    objRS.MoveNext
Loop
/../Libraries/Tests.vbs
文件中,我有这个函数

Sub foo()
  msgbox "hello"
End Sub
在Excel中引用,如下所示

当我尝试使用GetRefm时,QTP抛出了以下错误


无效的过程调用或参数:“GetRef”
第(10)行:“设置tcFunc=GetRef(objRS.Fields(1.Value)”。

如果foo是在QTP的操作中定义的,那么它可以工作,但是当我从函数库导入它时,它失败了。你知道怎么做吗

编辑--变通解决方案


与其使用
LoadFunctionLibrary
,不如使用
ExecuteFile
来加载函数库。

这不是在拉标题吗?因此实际上,它正在尝试
GetRef(“测试名称”)
并失败(出于多种原因,1.过程指针不能包含空格2.它不存在)。您是否确实尝试过调试
objRS.Fields(1).Value
返回的而不是假设的内容?
HDR=YES
,以便正确处理标题。另外,
objRS.Fields(1.Value)
正确打印值(我使用
print
只是为了验证)为什么循环通过,你只想调用
GetRef()
一次对吗?@Lankymart-只是使用了
ExecuteFile
而不是
LoadFunctionLibrary
,这就成功了
LoadFunctionLibrary
是QTP的最新开发,因此假设它没有经过全面测试(鉴于QTP是一个测试工具,这很讽刺),我看不到任何答案框-看起来我忘了选中“回答我自己的问题”复选框。