Страница 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