Страницы: 1
RSS
макрос добаляющий строку в таблицу
 
Уважаемые форумчане, знаю, что вопрос обсуждался и есть в архивах. Но у меня не получилось до конца разобраться, поэтому решусь поднять эту тему.
У меня есть 3 таблицы с формулами. Мне необходимо сделать так, чтобы при нажатии кнопки добавлялась строка в каждую из них с сохранением формата и формул предыдущих строк каждой из таблиц.
Нашел в архиве вот это решение:  Range("A10:J10").Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Вроде работает, но начиная со второй строки подставляет строки выше последней.
Насколько я понимаю, необходимо задать переменную которой нужно присвоить в цикле номер последней строки в таблице и которую нужно добавить в диапазон вместо ("A10:J10"). Понимаю, вижу похожие решения, но ничего не получается сделать.

Буду признателен за подсказку.
 
Код
Range("A10:J10";).Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
В переводе это: сместиться от диапазона А10:J10 на одну строку вниз, выделить эту строку и добавить строку со смещением выделенной строки вниз. Скопировать в созданную строку формат с верхней строки.


Я так понимаю, Вам не это нужно. Может Вы покажете на реальном примере (файле) что за 3 таблицы, как они на листе(листах) расположены, какого они размера по столбцам, с какой строки/столбца начинаются, где именно в них надо строки вставлять и какую именно информацию надо переносить во вновь создаваемую строку (формулы, форматы и  т.д.)?
Кому решение нужно - тот пример и рисует.
 
Да, пожалуйста.
Во вложении пример с таблицами. Необходимо чтобы при нажатии кнопки в правом верхнем углу шапки добавлялось по одному ряду (последней строкой в таблице) в каждую из 3 таблиц под шапкой.  
 
Используйте "умные" таблицы. Функционал который описан Вами в них изначально заложен
Согласие есть продукт при полном непротивлении сторон
 
Таблицы отформатированы как "умные" таблицы. Проблемы с форматированием нет. Проблема с добавлением последней строки в таблицы.
 
Добавил 3 имени на лист
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
del... ;(
Изменено: Z - 28.03.2015 11:51:00
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Там вторая таблица чего-то выделывается, пришлось с бубном, вникать не стал.
Код
Sub www()
    Dim lo As Object
    Dim lr As ListRows
    On Error Resume Next
    For Each lo In Sheets("Лист1").ListObjects
        lo.ListRows.Add
        If Err Then
            Err.Clear
            Set lr = lo.ListRows
            Rows(lr(lr.Count).Range.Row + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End If
    Next
End Sub
Изменено: KuklP - 28.03.2015 12:07:33
Я сам - дурнее всякого примера! ...
 
Михаил Лебедев, спасибо большое!
Попробовал разобраться с кодом, на мой взгляд, очень элегантное решение. Я подобного в сети не встречал.

KuklP, спасибо большое! Да, вторая таблица как-то непонятно себя ведет.  
Страницы: 1
Наверх