qq50505195 发表于 2008-11-2 23:14:08

QTP中主函数与外部调用函数值的传递问题

我是一个新手,最近在学习简单的QTP框架,今天遇到一个问题,就是如果将对EXCEL表操作的语句封装在一个外部VBS函数中,在TEST中无法调用相关对EXCEL表的语句。(注外部VBS函数通过SETTING里的RESOURCE来添加,我有的是QTP9.2)我可以肯定函数是可以调用到的!
举个简单的例子:TEST 中语句如下:Call inputexcel    ‘inputexcel 外部VBS函数中定义的一个过程名
                                                         msgbox myExcelSheet.Cells(2,2)
                           外部VBS函数如下:Public Sub inputexcel
                                                         Dim fso,excelbook,excelsheet,myExcelBook,myExcelSheet
                                                      Set fso=createobject("Scripting.FileSystemObject")
                                                      Set excelbook=createobject("Excel.Application")
                                                          Set myExcelBook=ExcelBook.WorkBooks.Open("e:\data.xls")
                                                      Set myExcelSheet = myExcelBook.WorkSheets("Sheet1")
                                                   End Sub
运行时,QTP报错缺少对象myExcelSheet
         这时候我认为应该是外部函数的变量作用范围问题,他并不能直接在TEST中直接调用。为了可以值传递我在外部VBS函数中加入如下两句
                  environment.Value("omyExcelSheet")=myExcelSheet
                      Environment.Value("omyExcelbook")=myExcelbook‘将变量的值存储到环境两个环境变量中
同时在TEST中加入两句:myExcelbook= Environment.Value("omyExcelbook")
                                        myExcelSheet=environment.Value("omyExcelSheet")
这时QTP报错:对象不支持此属性或方法myExcelbook.我弄了好久都没找出问题来。我现在想问的是:
1、TEST和外部函数中的变量的范围是什么样的,比如外部函数中定义的PUBLIC变量是否可以在TEST中直接使用,反之也一样
2、如果不能使用,我要传递值的时候怎么传递。对(EXCET操作为例)谢谢
e:%5Csnap2e:%5Csnap3

qq50505195 发表于 2008-11-2 23:17:17

自己来一个。

f84248860 发表于 2008-11-2 23:38:24

定义全局变量,over

f84248860 发表于 2008-11-2 23:40:01

或者你用function,然后传递返回值。话说Sub是什么东西?我从来不用的。
页: [1]
查看完整版本: QTP中主函数与外部调用函数值的传递问题