:: Не фоксом единым
Есть ли в excel метод вставки нескольких строк одновременно
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Собственно сабжект
метод intirerow.insert в цикле уж больно
долго работает, если нужно вставить сотни новых строк



Исправлено 1 раз(а). Последнее : boba, 08.02.17 09:33
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Указатель на массив записывать в Range().Value тоже не подходит?
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
.Cells(10, 1).Resize(15, 1).EntireRow.Insert()
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
******Указатель на массив записывать в Range().Value тоже не подходит?
В шаблоне до его заполнения только одна чистая строка.
Те весь селектированный диапазон - 1 строка
Если туда заранее штук по 5 накидать и селектить, общее число строк
будет кратно исходным, придется до помещения строки деталей лишние строки убирать.



Исправлено 1 раз(а). Последнее : boba, 08.02.17 14:36
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
boba
******Указатель на массив записывать в Range().Value тоже не подходит?
В шаблоне до его заполнения только одна чистая строка.
Те весь селектированный диапазон - 1 строка
Если туда заранее штук по 5 накидать и селектить, общее число строк
будет кратно исходным, придется до помещения строки деталей лишние строки убирать.

Не совсем понял схему, зачем добавлять пачками строки? Думаю, of63 имел в виду метод вставки данных в Excel массивом, а не построчно, как уже много раз здесь обсуждалось (например, forum.foxclub.ru). Определить диапазон для выделения по количеству строк в массиве ведь не проблема. Или там в шаблоне еще какой-то "подвал", который должен выводиться после строк с данными? Если его сложно сформировать из VFP, то можно копировать с другого листа, например, и вставлять после данных.
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Конечно, мне известен метод заноса данных оптом из Фокса через массив.
Давно его применяю. Тут дело не в этом, а в конкретных шаблонах,
взятых в Интернет, например, от Гарант.
Там часто всего несколько строк по высоте, а далее нет строк вообще.
Перенос массивом большей длины просто вылетит в ошибку.
Например, в таком шаблоне может быть так,
если там всего 11 строк.

exls = createobject('excel.application')
...................
................

type('exls.cells(1,1)')='O'
type('exls.cells(12,1)')='U'

Простой выход, нарисовать шаблон самому,
и тогда метод через массив сработает.
У нас сейчас огромная годовая отчетность.
Одних форм 17 инвентаризации видов 10 или больше.
Рисование занимает время в разы больше программирования.
Сначала нужно строчки добавить, об этом и был вопрос
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Если выделить в экселе строку 10, например. А потом протянуть выделение вниз, на 15 строк, например. То перед строкой 10 вставится 15 новых строк с форматированием как у 10-ой строки.
То же самое можно сделать через VBA: .Cells(10, 1).Resize(15, 1).EntireRow.Insert()
Ratings: 0 negative/1 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
На всякий, я вот так добавляю строки: копирую текущую строку, с сохранением форматирования строки. Добавление быстрее на порядок чем собственно наполнение ячееек значениями.
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Во-первых, дёргать Selection это медленно. Во-вторых, дёргать Selection это может быть ещё и вредно, если в этом экземпляре офиса открыты другие книги, доступные пользователю. В-третьих, работа через Clipboard это медленно. Лучше использовать Insert. А для сохранения формата, нужно указать значение перечисления XlInsertFormatOrigin.

И в четвёртых. Если работаешь через ClipBoard, а пользователь, при этом тоже активно использует ClipBoard, можно вполне себе успеть огрести ситуацию, когда пользователь успеет заменить содержимое ClipBoard между Copy и Paste. Другой вопрос, что по статистике пользователь достаточно долго завороженно пялится в монитор, пока программа выводит отчёт.
Ratings: 0 negative/1 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Спс. В курсе, но пока вот так, через Range что-то не получилось...
Ratings: 0 negative/0 positive
Re: Есть ли в excel метод вставки нескольких строк одновременно
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
pasha_usue
Если выделить в экселе строку 10, например. А потом протянуть выделение вниз, на 15 строк, например. То перед строкой 10 вставится 15 новых строк с форматированием как у 10-ой строки.
То же самое можно сделать через VBA: .Cells(10, 1).Resize(15, 1).EntireRow.Insert()

Спасибо, Павел, работает на ура, быстро
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика