我怎么能用OLE来引用内置的MS Excel类型

时间:2011-11-28 12:44:56

标签: excel vbscript automated-tests qtp excel-2010

我的应用程序应该在Excel中执行一些简单的操作,例如添加图表,列表对象等。我正在使用OLE连接。问题是,某些Excel方法将内置类型(枚举)作为参数。我对提及它们没有任何想法。例如:

WorkBook.ActiveSheet.ListObjects.Add(xlSrcRange, Range("$D$5:$J$15"), , xlNo).Name = "Table1"

xlSrcRange xlNo 属于内置枚举。我尝试以下列方式引用它们

ExcelApp.xlSrcRange
ExcelApp.XlListObjectSourceType.xlSrcRange
ExcelApp.XlListObjectSourceType

此代码导致错误“对象不支持属性或方法 ExcelApp.xlSrcRange

New XlListObjectSourceType.xlSrcRange
new xlSrcRange

此代码也会导致错误(未知变量XlListObjectSourceType和xlSrcRange)

我正在使用QTP,脚本语言是VB脚本

2 个答案:

答案 0 :(得分:1)

.wsf脚本可以通过Excel.Sheet引用访问xl *常量:

type xlconst.wsf

<?xml version="1.0" standalone="yes" encoding="iso-8859-1" ?>
<package>
 <job id="xlconst">
  <reference object="Excel.Sheet" reference="true"/>
  <script language="VBScript">
   <![CDATA[
' ############################################################################
For Each arg In WScript.Arguments.Unnamed
    WScript.Echo "Const " & arg & " = " & Eval(arg)
Next
' ############################################################################
   ]]>
  </script>
 </job>
</package>

输出:

cscript xlconst.wsf xlNo xlYes

Const xlNo = 2
Const xlYes = 1

普通的VBScript不能。如果QTP仅限于普通VBScript,则必须手动添加/定义常量。也许上面的.wsf会让这个任务更容易。

答案 1 :(得分:0)

如何使用完全限定名称?

dim sourceType As Excel.XlListObjectSourceType
sourceType = Excel.XlListObjectSourceType.xlSrcRange

编辑:(在vbscript中)

dim sourceType 
sourceType = 1