PDA

Показать полную графическую версию : [решено] ObjGet дает ссылку не на тот объект


evg64
12-09-2009, 01:10
Я взял пример из справки по функции 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
В справке есть множество функции на тему 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




© OSzone.net 2001-2012