молбата ми трябва да изпълнява някои прости действияв 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-скрипт
Отговори:
1 за отговор № 1Скрипт .wsf може да осъществи достъп до xl * константи чрез Excel.
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 ще направи тази задача по-лесна.
0 за отговор № 2
Какво ще кажете за използването на напълно квалифицирано име?
dim sourceType As Excel.XlListObjectSourceType
sourceType = Excel.XlListObjectSourceType.xlSrcRange
EDIT: (в vbscript)
dim sourceType
sourceType = 1