Как я могу сослаться на встроенный тип MS Excel с OLE - PullRequest
1 голос
/ 28 ноября 2011

мое приложение должно выполнять некоторые простые действия в 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-script

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Скрипт .wsf может получить доступ к константам xl * через ссылку на 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>

вывод:

cscript xlconst.wsf xlNo xlYes

Const xlNo = 2
Const xlYes = 1

Обычный VBScript не может.Если QTP ограничен простым VBScript, вам придется добавить / определить константы вручную.Возможно, приведенный выше файл .wsf облегчит эту задачу.

0 голосов
/ 28 ноября 2011

Как насчет использования полного имени?

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

РЕДАКТИРОВАТЬ: (в тексте)

dim sourceType 
sourceType = 1
...