![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите пожалуйста с Excel, - <invalid variant operation>
Konstantin © (2004-06-10 10:47:00)Проблема следующая:
var
MyExcel : Variant;
...
{читаю Excel файл и формирую XML файл.
...
// Вот дальше и вылетает, не может закрыть если он (MyExcel) не
// Unassigned, пишет на любую из этих строк
// <invalid variant operation>
if MyExcel<>Unassigned then
begin
MyExcel:=Unassigned; // пробовал и вместе и по
MyExcel.Workbooks.Close; // отдельности, ничего
MyExcel.Quit; // не помогает!
end;
Дело еще в том, что сначала все работало как часы и закрывался эксэль как надо, и даже из процессов уходил (частая проблема). Но после добавления блочков с OpenDialog и SaveDialog появился вот такой глюк. И что еще более интересно, что после восстановления старого варианта (без блоков) ГЛЮК ОСТАЛСЯ! Вот и сижу уже 3-й день с такой проблемой. Помогите пожалуйста! Всем заранее огромное спасибо!
Konstantin (2004-06-10 11:01:00) [1]То Clickmaker ©! Спасибо ! Ваш вариан работает!!! Даже если и не запускать Excel. Огромное спасибо!
Clickmaker (2004-06-10 11:01:00) [2]
> Konstantin (10.06.04 10:58) [4]
Из хелпа: Do not use Unassigned to test whether a Variant value is Unassigned. Instead, use the VarIsEmpty standard function. When used on an unassigned Variant, the VarType standard function returns varEmpty.
Проверяй, как я тебе написал в [3]
Konstantin (2004-06-10 10:58:00) [3]Идиотизм, но ПОМОГЛО следующее:
вместо:
if MyExcel<>Unassigned then
begin
MyExcel.Quit;
MyExcel:=Unassigned;
end;
Просто:
MyExcel.Quit;
MyExcel:=Unassigned;
Но теперь вопрос, а как если человек не запускал процедуру обработки и соответственно не открывал Excel?
Clickmaker (2004-06-10 10:55:00) [4]if not ((VarType(MyExcel) = varEmpty) or (VarType(MyExcel) = varNull))
then begin
MyExcel.Quit;
MyExcel:=Unassigned;
end;
Konstantin (2004-06-10 10:52:00) [5]Попробовал, не помогает! Таже глюка. :(
Clickmaker (2004-06-10 10:48:00) [6]MyExcel.Quit;
MyExcel:=Unassigned;
именно в такой последовательности