/ / ¿Cómo puedo referirme al tipo de MS Excel integrado con OLE? Excel, vbscript, pruebas automatizadas, qtp, excel-2010

¿Cómo puedo referirme al tipo de MS Excel integrado con OLE? Excel, vbscript, pruebas automatizadas, qtp, excel-2010

Mi aplicación debe realizar algunas acciones simples.en Excel, como agregar gráficos, enumerar objetos y así sucesivamente. Estoy usando la conexión OLE. El problema es que algunos métodos de Excel toman tipos incorporados (enumeraciones) como argumentos. Y no tengo ideas sobre cómo referirme a ellos. Por ejemplo:

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

xlSrcRange y xlNo Pertenecen a la enumeración incorporada. Intenté referirme a ellos de la siguiente manera.

ExcelApp.xlSrcRange
ExcelApp.XlListObjectSourceType.xlSrcRange
ExcelApp.XlListObjectSourceType

este código provoca el error "El objeto no" admite la propiedad o el método ExcelApp.xlSrcRange"

New XlListObjectSourceType.xlSrcRange
new xlSrcRange

este código también causa un error (variable desconocida XlListObjectSourceType y xlSrcRange)

Estoy trabajando con QTP y el lenguaje de script es VB-script

Respuestas

1 para la respuesta № 1

Una secuencia de comandos .wsf puede acceder a las constantes xl * a través de una referencia Excel.Sheet:

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>

salida:

cscript xlconst.wsf xlNo xlYes

Const xlNo = 2
Const xlYes = 1

VBScript simple puede "t. Si QTP está restringido a VBScript simple, tendrá que agregar / definir las constantes manualmente. Quizás lo anterior .wsf hará esta tarea más fácil.


0 para la respuesta № 2

¿Qué hay de usar el nombre completo?

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

EDITAR: (en vbscript)

dim sourceType
sourceType = 1