Показать сообщение отдельно
  #1  
Старый 08.01.2013, 22:59
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию EXCEL + Delphi..Ошибка при первом запуске макроса

Здравствуйте! Возникла большая проблема: есть EXCEL + программа на Delphi. В EXCEL используется формулы, поиск решения, макрос на этот поиск решения. Проблема в следующем: при открытии файла программой первый раз Excel выдает ошибку "Ошибка сервера", при втором и т.д открытиях макрос выполняется и данные из ячеек записываются в переменные. После закрытия программы остается один процесс Excel.exe. Можете посмотреть код и Excel и сказать что не так? P.S. В программе используется 2 Excel: Ap и Ap2. проблема только со вторым.
Код:
  
...
   Ga:=0.0446799829905886;
   Ny:=0.461817650125116;
   Fi:=WavInfo.MinAmplitude/WavInfo.MaxAmplitude-0.0002734;
   La:=1-(WavInfo.MinAmplitude/WavInfo.MaxAmplitude)+0.00034782;
  For i:=1 to m do                    //
   begin                                                                      //
 Ap2.Cells[i,1]:=Xj[i];
 Ap2.Cells[i,2]:=Yj[i];
 //ap2.Visible := True;
   end;

 Ap2.Range['K1']:=Ga;
 Ap2.Range['K2']:=Ny;
 Ap2.Range['K3']:=Fi;
 Ap2.Range['K4']:=La;

  begin
 ap2.visible:=true;
 Ap2.Run('Макрос1');
 Ga:=Ap2.Range['K1'];    //Ap2.Cells[1,11];
 Ny:=Ap2.Range['K2'];
 Fi:=Ap2.Range['K3'];
 La:=Ap2.Range['K4'];
  end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
Ap := CreateOleObject('Excel.Application');
Ap.Workbooks.Open(GetCurrentDir+ '\EXСEL.xls');
PageControl1.ActivePage:= TabSheet1;
Ap2 := CreateOleObject('Excel.Application');
Ap2.Workbooks.Open(GetCurrentDir+ '\EXCEL2.xls');
end;
...
procedure TForm1.FormDestroy(Sender: TObject);
begin
Ap.DisplayAlerts:=False;
Ap.Application.Quit;
Ap2.DisplayAlerts:=False;
Ap2.Application.Quit;
end;
Excel ниже. Если надо, выложу исполняемый проект на Delphi для представления ошибки. Заранее спасибо!
Вложения
Тип файла: rar EXCEL2.rar (10.4 Кбайт, 1 просмотров)
Ответить с цитированием