UFT / QTP CreateObject语法错误

时间:2015-01-14 13:11:07

标签: vbscript qtp hp-uft

我尝试在UFT中创建对象:

Dim xlApp 
Dim xlBook 
Dim xlSheet 
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\1.xls")
Set xlSheet = xlBook.Sheets(1)

创建失败,

中出现语法错误
The test run cannot continue due to a syntax error.
Syntax error
Line (242): Set xlApp = CreateObject("Excel.Application")

有人知道如何修理吗? 谢谢你的帮助

1 个答案:

答案 0 :(得分:5)

根据您的评论,您使用的是:

Class MyClass
    Dim xlApp 
    Dim xlBook 
    Dim xlSheet 

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("C:\1.xls")
    Set xlSheet = xlBook.Sheets(1)
End Class

然后,您在xlApp分配中遇到语法错误。

就是这样,因为该范围内的分配无效(根本没有可调用的范围)

首先,设置option explicit on

然后,确保使用Dim定义所有实例变量。

另外,创建一个构造函数,或者在下面的示例中,创建一个可调用的Sub,它初始化实例变量,如下所示:

Option Explicit

Class MyClass
    Dim xlApp 
    Dim xlBook 
    Dim xlSheet 
    Public Function SetParam ()
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("C:\1.xls")
        Set xlSheet = xlBook.Sheets(1)
    End Function
End Class

这不会产生语法错误,可能更接近您的意图。

这是因为在Class ... End Class构造中,除了定义之外,你不能拥有任何其他东西。没有陈述。作业是陈述。 (VBScript不支持在变量定义中使用" ="初始化。)