0
В листе есть:Копирование ячейки с форматом из листа первенствовать на другой рабочую книгу лист в Delphi
Я хочу, чтобы разъединить на B2: C2 ячейку и скопировать с его форматом другой лист (в другой книге) в A1, затем значение (в C3) в ячейку B1 другого листа, от D2 до A2, от E2 до B2 и так далее ... Как я могу это сделать?
procedure Something;
const root = 'C:\vial\$$652791.xls';
filename = 'C:\vial\abarajame.xls';
var xlsH, xlsD: TExcelApplication;
sheetH,sheetD: _Worksheet;
DestRange: OleVariant;
format: string;
begin
xlsH := TExcelApplication.Create(Self);
xlsD := TExcelApplication.Create(Self);
xlsH.Workbooks.Open(root, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
xlsD.Workbooks.Open(filename, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
sheetH := xlsH.Worksheets[1] as _Worksheet;
sheetD := xlsD.Worksheets[1] as _Worksheet;
//Insert 5 empty rows
sheetD.Rows.Range['A1','A5'].EntireRow.Insert(xlShiftDown, Null);
//1st. col.
sheetH.Cells.Range['B2','I2'].MergeCells := False;
DestRange := sheetH.Cells.Range['B2','I2'];
format := sheetH.Cells.Range['B2','I2'].NumberFormat;
sheetD.Cells.Range['A1','A1'].Copy(DestRange);
sheetD.Cells.Range['A1','A1'].NumberFormat := format;
DestRange := sheetH.Range['C3','C3'];
format := sheetH.Range['C3','C3'].NumberFormat;
sheetD.Range['A2','A2'].Copy(DestRange);
sheetD.Range['A2','A2'].NumberFormat := format;
//2nd. col.
DestRange := xlsH.Range['D2','D2'];
xlsD.Range['B1','B1'].Copy(DestRange);
DestRange := xlsH.Range['C4','C4'];
hojaD.Range['B2','B2'].Copy(DestRange);
xlsd.SaveWorkspace;
xlsH.Workbooks.Close(0);
xlsD.Workbooks.Close(0);
FreeAndNil(xlsH);
FreeAndNil(xlsD);
end;
Я проверил с Дифференц способами, Cells.Range, диапазон от листа, из клеток с ExcelApplication, но ничего не делает !!
Результат должен быть:
решаемая. Мне не нужно создавать 2 TExcelApplication instancies. Только открывать каждую книгу и копировать из диапазона источников в диапазон назначения – NizamUlMulk