Здравствуйте уважаемые подскажите пожалуйста! Задача заключается в следующем нужно скопировать данные по строчно из различный книг Excel'я в одну книгу искал по интернету делал различные варианты но глюк остался. Глю заключается в том что с одного документа данные копируются а с последующих нет не могу понять причину код ниже:
Код:
procedure TForm17.Button3Click(Sender: TObject);
var
Excel,Excel2: Variant;
k,j:integer;
str:string;
str2:variant;
begin
k:=i;
j:=i;
i:=0;
Excel2 := CreateOleObject('Excel.Application');
Excel2.WorkBooks.Add(ExtractFilePath(ParamStr(0))+'Shablon.xlt');
for i:=0 to j-1 do
begin
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open[ListBox1.Items[i]]; // считываем путь к файлу
//с лист бокса всегда задается
// новый путь к файлу
str:='A'+IntToStr(i+11); // Эти две строчки всегда копируются работают
Excel2.Range[str]:=i; // правильно
str:='C'+IntToStr(i+11); //дальше все строчки цикла рботают только один
str2:=Excel.Range[str]; //рас, т.е. после первой записи остальные
Excel2.Range[str]:=str2; // записываются пустыми
str:='D'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
str:='E'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
str:='F'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
str:='G'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
str:='H'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
str:='I'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
k:=k-1;
end;
if SaveDialog1.Execute then
begin
str := SaveDialog1.FileName;
end;
Excel2.ActiveWorkBook.SaveAs(str);
Excel2.ActiveWorkbook.Close;
Excel2.Application.Quit;
end;
Заранее спасибо