Excel Макрос: Как удалить строки вместе с форматом в умной таблице

Автор Посетитель, 21 марта 2017, 14:44

Посетитель

Есть умная таблица, в которой нужно удалить строки вместе с форматированием из диапазона.
Нужно удалить строки с 4 по последнюю.
Пробовал различные варианты, но форматы не удаляются.
Помогите, пожалуйста!

Администратор

Sub Макрос()
   
    Dim shMat As Worksheet, lr As Long
   
    '1. Присваиваем листу "Материалы" имя "shMat", чтобы удобнее писать код.
    Set shMat = Sheets("Материалы")
    '2. Поиск последней строки по столбцу "A".
        ' При использовании метода "End" не должно быть скрытых строк на листе.
    lr = shMat.Cells(shMat.Rows.Count, "A").End(xlUp).Row
    '3. Удаление строк с 4 по последнюю.
    shMat.Rows("4:" & lr).Columns("A:C").Delete Shift:=xlUp
   
End Sub

Посетитель


Администратор

Если используется умная таблица, то можно не искать последнюю строку.
Этот макрос удаляет в умной таблице строки с 4 по последнюю.

Sub Макрос()
   
    Dim shMat As Worksheet, tbl As ListObject
   
    '1. Присваиваем листу "Материалы" имя "shMat", чтобы удобнее писать код.
    Set shMat = Sheets("Материалы")
    '2. Присваиваем умной таблице имя "tbl".
    Set tbl = shMat.ListObjects("Таблица1")
    '3. Удаление строк с 4 по последнюю.
    tbl.Range.Rows("4:" & tbl.Range.Rows.Count).Delete Shift:=xlUp
   
End Sub