Страница 1 из 1

Excell копирование строк

Добавлено: 09 авг 2012, 14:51
n0where
Доброе время суток. возник вопрос:
Как копировать и вставить строки в Excel с сохранением форматирования?

Использую сейчас это

Код: Выделить всё

      xlCopyToBuff(My_Col-1,1,My_Col-1,161);
      xlInsertRange(xlShiftDown,My_Col,1,My_Col,161);
      xlPasteAllFromBuff(My_Col,1,My_Col,161);
Но долго работает.

Re: Excell копирование строк

Добавлено: 09 авг 2012, 18:02
Starry
А зачем вам здесь xlInsertRange? У вас в тех ячейках, которые вы собираетесь заполнить, есть информация? Если нет, это лишняя функция, возможно она и дает тут максимальную задержку.
Для ускорения вывода в Excel лучше пользоваться матрицей (xlWriteMatrixToExcel), а потом на это место растиражировать нужное вам форматирование ячеек (xlPasteFormatFromBuff)

Re: Excell копирование строк

Добавлено: 09 авг 2012, 18:11
n0where
вставлять строки нудно не в конец файла в нужную позицию. Если просто безx lInsertRange - он заменит данные, которые идут ниже

xlWriteMatrixToExcel - заполняет данные. форматировать поля вручную чтоле?

Re: Excell копирование строк

Добавлено: 09 авг 2012, 18:26
Starry
Тогда можно сдвинуть вниз имеющиеся данные с помощью xlReadMatrixFromExcel и с отступом вниз xlWriteMatrixToExcel.
Форматирование задать для одной ячейки или диапазона и растиражировать с помощью xlPasteFormatFromBuffer.
Или: отформатировать заранее вручную в шаблоне Excel-файла.
Или: форматировать ячейки по одной или диапазонами прямо в vip-е по мере их заполнения данными.

В общем, если отвечать на ваш вопрос в первом посте - то другого варианта копирования строк с сохранением формата нет.
Все что я предложил, это изменения порядка вывода в Excel :)