Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 21 марта 2017, 14:44

Название: Excel Макрос: Как удалить строки вместе с форматом в умной таблице
Отправлено: Посетитель от 21 марта 2017, 14:44
Есть умная таблица, в которой нужно удалить строки вместе с форматированием из диапазона.
Нужно удалить строки с 4 по последнюю.
Пробовал различные варианты, но форматы не удаляются.
Помогите, пожалуйста!
Название: Re: Excel Макрос: Как удалить строки вместе с форматом в умной таблице
Отправлено: Администратор от 21 марта 2017, 16:39
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
Название: Re: Excel Макрос: Как удалить строки вместе с форматом в умной таблице
Отправлено: Посетитель от 21 марта 2017, 17:03
Все работает правильно.
Большое спасибо.
Название: Re: Excel Макрос: Как удалить строки вместе с форматом в умной таблице
Отправлено: Администратор от 21 марта 2017, 19:06
Если используется умная таблица, то можно не искать последнюю строку.
Этот макрос удаляет в умной таблице строки с 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