Excel ЧаВо


Как скопировать область, чтобы сохранились размеры строк/столбцов?


К сожалению, при копировании не сохраняются размеры строк и столбцов. Для сохранения размеров строк и столбцов можно использовать несколько способов:

Delphi:

// способ первый - использование метода PasteSpecial

// скопируем область ячеек в буфер обмена

R.Copy(EmptyParam); // поместим в БО

// вставим в "C3" - ширина колонки не изменилась

ASheet.Paste(ASheet.Range['C5', EmptyParam], EmptyParam, lcid); // специальная свтавка с XlPasteType = xlPasteColumnWidths

ASheet.Range['C5', EmptyParam].PasteSpecial(xlPasteColumnWidths, xlPasteSpecialOperationNone, False, False);

// второй способ - обращение к коллекциям Rows и Columns

// копируем весь/все столбец(ы)

R.EntireColumn.Copy(EmptyParam); // поместим в БО

// обязательно должна быть указана первая строка!

ASheet.Paste(ASheet.Range['E1', EmptyParam], EmptyParam, lcid);

// третий способ - "копирование" свойства ColumnWidth

R.Copy(ASheet.Range['G4', EmptyParam]); // Просто "копируем" ширину столбца

ASheet.Range['G4', EmptyParam].ColumnWidth := R.ColumnWidth;

Copy Method

PasteSpecial Method



Содержание раздела