|
|
|
|
#1 |
|
Модератор
|
Цитата:
Сообщение от Gustav
ну, если хелп по Excel на своем компе совсем лениво открывать, то хотя бы здесь посмотрите: http://msdn.microsoft.com/en-us/library/bb178850.aspx Цитата:
Сообщение от Gustav
Самый простой вариант решения проблемы - вернуться к вставке полных строк. Еще вариант - отказаться от объединенных ячеек. В подавляющем большинстве практических случаев они могут быть безболезненно для отображения заменены центрированием по выделению (Формат \ Ячейки \ Выравнивание \ По горизонтали \ По центру выделения).
Если всё-таки хочется решать задачу именно в вашей постановке, то видится такой извратный вариант - сдвигать все оставшиеся ячейки шаблона ниже места вставки вправо (как дверь шкафа-купе), потом делать копирование, потом возвращать "дверь" обратно. Стоит ли игра таких свеч? со вставкой строки сразу отпадает. В отчете ячейки слишком мелкие и они объединены в "по больше". Как у именованной ячейки узнать с кем она объединена? (сколько ячеек в право и сколько вниз.) А потом после вставке основной первой именованной все остальные продублировать также и после всего их объединить?
|
|
|
|
|
#2 |
|
Moderator
|
Ну-ну! Идём в Excel в редактор кода VBA по Alt+F11, пишем в окне отладки: Range("A1").Insert
Щелкаем мышкой в середине слова Insert и жмем F1 - появляется топик хелпа Читая топик, видим интересующую нас константу xlShiftDown. Копируем эту строку в окно отладки и ставим перед ней восклицательный знак (сократитель команды Print), после чего нажимаем Enter Ну это-то конечно. Типа "пусть работает железная пила" ![]() См. MergeArea - cвойство объекта Range. Возвращает тоже Range. Например, если объединены ячейки A1:C2, то Range("A1").MergeArea.Address вернет $A$1:$C$2. Еще есть булевское свойство MergeCells объекта Range - возвращает True, если ячейка входит в объединение. |
|
|