Показать сообщение отдельно
  #1  
Старый 03.11.2017, 10:29
Praefectus Praefectus вне форума
Прохожий
 
Регистрация: 03.11.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Excel выдаёт ошибку "Недостаточно памяти для выполнения операции"

Народ, помогите. Есть древняя программа на Delphi 7. В ней создаются отчёты в Excel через Ole. До недавнего времени всё отлично работало. Поставили новой сотруднице - стала выдаваться ошибка "Недостаточно памяти для выполнения операции".
Система Win 7 x86, Office 2013. На других компьютерах с той же виндой и тем же офисом всё нормально.

Пример кода:
Код:
procedure TMenu.N26Click(Sender: TObject);
var
cntwb:integer;
path,sql:string;
XL: OleVariant;
i,row:integer;

const col_count=3;
begin

try
  XL:=GetActiveOleObject('Excel.Application');
 except
  XL:=CreateOLEObject('Excel.Application');
 end;
 CntWB:=XL.Workbooks.Count+1;
 XL.Visible:=True;
 path:=ExtractFilePath(Application.ExeName)+'Template\org_otch';
 XL.WorkBooks.Add(path);

 XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';
...

Ошибка выдаётся на строчке:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';

Если её закоментить, то на следующем обращении к Excel:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Cells(row,1):=inttostr(row-4);

Памяти на компе полно свободной. Вообще не знаю, куда копать.
Ответить с цитированием