Страницы: 1
RSS
Умные таблицы. Вставить строки, (по ОДНОЙ строке перед/над каждой ячейкой в заданном диапазоне)
 
Доброго времени суток, Планетяне!

Удаление строк рассмотрено тут, а со вставкой всё сложнее. Если вставлять нужно более чем по 1 строке, то тут без циклов никак и этот вариант отлично работает.

Вопрос в работе функции PRDX_RowsInsert: если выделить (передать диапазон) ячейки, которые не стоят рядом, то всё гут, но, если выделить рядом стоящие ячейки (неважно, по одной через Ctrl или одним выделением), то вставляется так, как, если было бы выделено сплошным диапазоном (над первой ячейкой выделения вставляется столько строк, сколько выделено). Если делать руками (выделить по одной и нажать "Вставить строки на лист"), то всё гут, но макрорекордер записывает Selection.EntireRow.Insert если мы тоже самое запишем в коде, то для умной таблицы не сработает (будет ошибка).
КОДЫ
Изменено: Jack Famous - 06.03.2019 10:58:41
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Я так понял, либо всем пофиг, либо решения нет и поэтому придумал следующее: получаю из выделенного диапазона отдельные ячейки (либо Offset(-1,0), если нужно вставлять ПОД выделенными) и прошу пользователя нажать клавишу "Вставить строки на лист". Работает отлично и бонусом идёт штатная возможность отмены.

Разумеется, можно было не париться и просто делать обратным циклом, но на больших объёмах "штатная" вставка по 1 строке должна выиграть.
Изменено: Jack Famous - 07.03.2019 10:13:36
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх