UFT/QTP CreateObject语法错误

jhe*_*a-d 0 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)
Run Code Online (Sandbox Code Playgroud)

创建失败,语法错误

The test run cannot continue due to a syntax error.
Syntax error
Line (242): Set xlApp = CreateObject("Excel.Application")
Run Code Online (Sandbox Code Playgroud)

有人知道怎么修理吗?谢谢您的帮助

The*_*One 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
Run Code Online (Sandbox Code Playgroud)

然后,您在xlApp分配中收到语法错误.

这是正确的,因为该范围内的赋值无效(根本没有可调用的范围).

首先,设置option explicit on.

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

另外,创建一个构造函数,或者在下面的示例中,创建一个callable 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
Run Code Online (Sandbox Code Playgroud)

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

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