Если приложение Excel работает
При работе с запущенным приложением Excel, он может быть занят, если в это время пользователь редактирует значение в ячейке, или в нем открыто какое-либо модальное диалоговое окно (например, "Открытие документа"). Чтобы обойти эту ситуациюб всегда запускайте новую копию Excel.Application и устанавливайте свойство Interactive в False, что запретит пользователю что-либо делать в Excel'е или закрыть запущенный экземпляр Excel.Application:
Delphi:
XL := TExcelApplication.Create(nil);
try
XL.ConnectKind := ckNewInstance; XL.Connect; XL.Interactive[lcid] := False; // запрещаем работу пользователю с нашим экземпляром Excel'я
XL.Visible[lcid] := True; // работать здесь
finally
// не забыть разрешить пользователю доступ к Excel'ю!
XL.UserControl := True; XL.Interactive[lcid] := True; XL.Disconnect; FreeAndNil(XL);
end;
The action cannot be completed because Microsoft Office Excel is busy
Interactive Property