![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А если Excel закрыт???? [D5, Win2k]
Chuk45 © (2004-10-08 12:18:00)Добрый день всем.
Подключаюсь так:
Excel := CreateOleObject('Excel.Application');
Excel.Visible := True;
WBk := Excel.WorkBooks.Open(ExcelPath);
WS := WBk.Worksheets.Item['Лист1'];
Отключаюсь так:
WS:=Unassigned;
WBk.Close;
WBk:=Unassigned;
Excel.Quit;
Excel := Unassigned;
Но вот если Excel был закрыт до отключения, то вываливается ошибка "Вызываемый объект был отключён".
Как этого избежать/обработать (кроме, конечно, "не закрывай Excel до отключения" :))?
_iceman_ (2004-10-08 16:11:00) [1]if not VarIsEmpty(Excel) then
Excel.Quit;
KSergey (2004-10-08 14:01:00) [2]Ну дык убери WBk.Close и Excel.Quit ;)
Chuk45 (2004-10-08 13:55:00) [3]YurikGL © (08.10.04 12:55) [3]
Я тоже хотел так сделать, но отключение:
WS:=Unassigned;
WBk.Close;
WBk:=Unassigned;
Excel.Quit;
Excel := Unassigned;
выхывает диалог закрытия самого Excel'я.
KSergey (2004-10-08 13:02:00) [4]К стати, у родного TExcelApp - нет ои чего-то вроде OnClose? (только как реализовать - не знаю; см. vcl)
YurikGL (2004-10-08 12:55:00) [5]
> Chuk45 (08.10.04 12:18)
Советую делать так:
Подключился. Выбросил в ексель все что надо и сразу отключился. Если надо что-то еще выбрасывать - подключаемся вновь.
Chuk45 (2004-10-08 12:25:00) [6]К сожалению, отображать надо.
KSergey (2004-10-08 12:24:00) [7]Да никак и не обрабатывать.
Ну если уж так пугает - ну подавить try/except, хотя зачем? А может не отображать эксель просто? Дабы и закрыть-то его пользователь сам не мог...