Страницы: 1
RSS
Копирование и вставка в динамический диапазон макросом.
 

Добрый день. Сразу скажу, что мои знания в макросах только на уровне макрорекордера.
Нужно иногда скопировать ячейку с формулой в умной таблице и вставить в другие ячейки этой таблицы, но с учетом того, что строк иногда может быть больше, а иногда меньше. Попробовал макрорекордером записать, но при работе макроса в добавленные строки формулы не вставляются т.к в макросе указан конкретный диапазон. Как его записать динамическим?

В данном примере, строка 6 таблицы была дописано после записи макроса и следовательно при нажатии «обновить» формулы в ячейках H12 и G12 не обновляются, а нужно чтоб обновлялись.

Помогите.

 
Код
Dim LastRow As Long
LastRow = Cells(Rows.Count,1).End(xlUp).Row 'последняя строка по 1 столбцу
Range("F7:F" & LastRow).......
 
И куда или вместо чего это вставить?
 
Код
Sub обновить()
Dim LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False 'отключаем обновление экрана
Application.EnableEvents = False 'отключаем отслеживание событий
    Range("F1").Copy
    Range("F7:AJ" & LastRow - 1).PasteSpecial
Application.EnableEvents = True 'включаем отслеживание событий
Application.ScreenUpdating = True 'отключаем обновление экрана
Application.CutCopyMode = False
End Sub
 
Код
Sub обновить()
    Application.EnableEvents = False
    With ThisWorkbook.Worksheets("Табель").ListObjects("Таблица1")
        Range(.ListColumns(5).DataBodyRange, .ListColumns(35).DataBodyRange).FormulaR1C1 = Range("F1").FormulaR1C1
    End With
    Application.EnableEvents = True
End Sub
Использовал свойства объекта "Умная таблица". Формула из яч. F1 вставляется в её столбцы с 5-го по 35-й.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
V и Михаилу Лебедеву - спасибо. Оба варианта работают, но взял второй, он короче.
Страницы: 1
Наверх