|
我是一个新手,最近在学习简单的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 |
|