Погода: −6 °C
05.12−7...−5облачно, без осадков
06.12−8...−7пасмурно, без осадков
НГС.Форум /Компьютеры Интернет Связь / Программирование /

Excel & Ole -> программа выполнила недопустимую ..

  • var
    Excel:Variant;
    begin

    Excel:=Unassigned;
    Excel:=CreateOleObject('Excel.Application');
    Excel.DisplayAlerts:=false
    WBook:=Excel.WorkBooks.Add
    //...и.т.д.
    //потом завершаем работу

    Excel:=Unassigned

    {вот тут на win98 вылетает стандартное виндовая ошибка "программа выполнила недопустимую операцию и будет закрыта...". Причём ругается именно на Excel, что он выполнил недопустимую операцию.}

    end;

    P.S. Дельфи5. Воспроизводится только на машинах с windows98 от версии MS Office не зависит.

  • я по такой схеме работаю, глюков нет

    uses OleServer, Excel2000, OleCtnrs, ComObj....
    var
    MSExcel: TExcelApplication;
    ExcelWSh: ExcelWorksheet;
    ExcelWB: ExcelWorkbook;
    .....
    begin
    MSExcel:=TExcelApplication.Create(self);
    MSExcel.ConnectKind:=ckNewInstance;
    MSExcel.AutoQuit:=true;
    MsExcel.WindowState[LOCALE_USER_DEFAULT]:=xlNormal;
    MsExcel.Left[LOCALE_USER_DEFAULT]:=Form1.Left+140;
    MsExcel.Top[LOCALE_USER_DEFAULT]:=Form1.Top+65;
    MSExcel.Width[LOCALE_USER_DEFAULT]:=Form1.Width-410;
    MSExcel.Height[LOCALE_USER_DEFAULT]:=Form1.Height-320;
    MSExcel.Visible[LOCALE_USER_DEFAULT]:=true;
    MSExcel.Workbooks.Open(filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,1);
    ExcelWB:=MSExcel.Workbooks:1: ;
    ExcelWB.Activate(LOCALE_USER_DEFAULT);
    ......
    end;

    Закрываю

    MSExcel.Destroy;

  • В ответ на: Excel:=Unassigned;
    А какой смысл в этой строчке? По моему она вообще не нужна.

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • Нужна, проблема была в том, что я не "освобождал" переменные WBook, WSheet и.т.д.

Записей на странице:

Перейти в форум

Модератор: