/ / Como eu poderia me referir ao tipo MS Excel embutido com OLE - excel, vbscript, testes automatizados, qtp, excel - 2010

Como eu poderia me referir ao tipo MS Excel embutido com OLE-excel, vbscript, testes automatizados, qtp, excel-2010

meu aplicativo deve executar algumas ações simplesno Excel, como adicionar gráficos, listar objetos e assim por diante. Eu estou usando conexão OLE. O problema é que alguns métodos do Excel tendo tipos internos (enumerações) como argumentos. E eu não tenho idéias sobre como se referir a eles. Por exemplo:

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

xlSrcRange e xlNo pertencem à enumeração interna. Eu tentei me referir a eles da seguinte maneira

ExcelApp.xlSrcRange
ExcelApp.XlListObjectSourceType.xlSrcRange
ExcelApp.XlListObjectSourceType

este código causa erro "Objeto não suporta propriedade ou método ExcelApp.xlSrcRange"

New XlListObjectSourceType.xlSrcRange
new xlSrcRange

esse código também causa um erro (variável desconhecida XlListObjectSourceType e xlSrcRange)

Eu estou trabalhando com QTP e a linguagem de script é script VB

Respostas:

1 para resposta № 1

Um script .wsf pode acessar as constantes xl * por meio de uma referência do 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>

saída:

cscript xlconst.wsf xlNo xlYes

Const xlNo = 2
Const xlYes = 1

O VBScript comum pode "t. Se o QTP estiver restrito ao VBScript simples, você terá que adicionar / definir as constantes manualmente. Talvez o .wsf acima torne essa tarefa mais fácil.


0 para resposta № 2

Que tal usar um nome totalmente qualificado?

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

EDIT: (em vbscript)

dim sourceType
sourceType = 1