Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] ObjGet дает ссылку не на тот объект (http://forum.oszone.net/showthread.php?t=150297)

evg64 12-09-2009 01:10 1216969

ObjGet дает ссылку не на тот объект
 
Я взял пример из справки по функции ObjGet() и немножко его переделал. Выдается ошибка "The requested action with this object has failed" в отношении строки кода $oExcel.Visible = 1. А переменная $Title (я выводил ее через msgbox) равна заголовку окна моего текстового редактора для скриптов. ObjGet как будто бы получает не окно эксель, а активное окно на момент выполнения скрипта. Перед запуском файл "c:\AutoIT.xls", разумеется, открыт.
Код:

$oExcel = ObjGet("c:\AutoIT.xls","Excel.Application")    ; Get an existing Excel Object

if @error then
  Msgbox (0,"ExcelTest","Error Getting an active Excel Object. Error code: " & hex(@error,8))
  exit
endif
$Title=wingettitle($oExcel)
$oExcel.Visible = 1    ; Let the guy show himself
msgbox(0,0,$oExcel.workbooks.count)
exit

Как получить-таки объект эксель в переменную $oExcel?

Creat0R 12-09-2009 02:28 1216990

В справке есть множество функции на тему Excel'я.
Для ObjGet нужно либо имя файла xls (без указания имени объекта), либо только имя объекта.

Но лучше использовать встроенные функции:

Код:

#include <Excel.au3>
#include <File.au3>
;

$sFilePath = @DesktopDir & "\AutoIT.xls"
_FileCreate($sFilePath)

$oExcel = _ExcelBookOpen($sFilePath, 1)

MsgBox(64, "", $oExcel.WorkBooks.Count)

_ExcelBookClose($oExcel, 1, 0) ;This method will save then Close the file, without any of the normal prompts, regardless of changes



Время: 02:02.

Время: 02:02.
© OSzone.net 2001-