Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Программное удаление всех строк динамической таблицы. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программное удаление всех строк динамической таблицы. (Макросы/Sub)
Программное удаление всех строк динамической таблицы.
Сергей13 Дата: Суббота, 09.03.2019, 13:03 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Ребята, через запись действий пытаюсь записать макрос удаления всех строк динамической таблицы, типа полная очистка ненужного. Но в коде прописывается фиксированное количество удалений, в зависимости от созданных строк. Как это можно обойти, дабы удалить все строки таблицы (конечно за исключением начальной) в независимости от количества созданных строк.
[vba]
Код
Application.Goto Reference:="tabl_logbook"
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
[/vba]


Сообщение отредактировал Сергей13 - Суббота, 09.03.2019, 13:04
 
Ответить
СообщениеЗдравствуйте!
Ребята, через запись действий пытаюсь записать макрос удаления всех строк динамической таблицы, типа полная очистка ненужного. Но в коде прописывается фиксированное количество удалений, в зависимости от созданных строк. Как это можно обойти, дабы удалить все строки таблицы (конечно за исключением начальной) в независимости от количества созданных строк.
[vba]
Код
Application.Goto Reference:="tabl_logbook"
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
    Selection.ListObject.ListRows(1).delete
[/vba]

Автор - Сергей13
Дата добавления - 09.03.2019 в 13:03
anvg Дата: Суббота, 09.03.2019, 13:20 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Как-то так, если предполагать, что вы хотите удалять только строки в таблице (иначе если строки листа, то можно проще)
[vba]
Код
    Dim i As Long
    For i = 1 To Selection.ListObject.ListRows.Count
        Selection.ListObject.ListRows(1).Delete
    Next
[/vba]
 
Ответить
СообщениеДоброе время суток
Как-то так, если предполагать, что вы хотите удалять только строки в таблице (иначе если строки листа, то можно проще)
[vba]
Код
    Dim i As Long
    For i = 1 To Selection.ListObject.ListRows.Count
        Selection.ListObject.ListRows(1).Delete
    Next
[/vba]

Автор - anvg
Дата добавления - 09.03.2019 в 13:20
Pelena Дата: Суббота, 09.03.2019, 13:28 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Как вариант
[vba]
Код
Activesheet.ListObjects("tabl_logbook").DatabodyRange.Delete
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКак вариант
[vba]
Код
Activesheet.ListObjects("tabl_logbook").DatabodyRange.Delete
[/vba]

Автор - Pelena
Дата добавления - 09.03.2019 в 13:28
Сергей13 Дата: Суббота, 09.03.2019, 14:11 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
anvg, Pelena, Ребята спасибо!

Pelena, в результате пустой одной строки и случайного выполнения действия по удалению, выходит ошибка, с учетом этого установил обработчик ошибок. Думаю это не критично…
[vba]
Код
On Error Resume Next
[/vba]
Спасибо!


Сообщение отредактировал Сергей13 - Суббота, 09.03.2019, 14:12
 
Ответить
Сообщениеanvg, Pelena, Ребята спасибо!

Pelena, в результате пустой одной строки и случайного выполнения действия по удалению, выходит ошибка, с учетом этого установил обработчик ошибок. Думаю это не критично…
[vba]
Код
On Error Resume Next
[/vba]
Спасибо!

Автор - Сергей13
Дата добавления - 09.03.2019 в 14:11
krosav4ig Дата: Суббота, 09.03.2019, 14:28 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сергей13, проверку на пустоту можно так сделать
[vba]
Код
    With [tabl_logbook].ListObject
        If .InsertRowRange Is Nothing Then .DataBodyRange.Delete
    End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеСергей13, проверку на пустоту можно так сделать
[vba]
Код
    With [tabl_logbook].ListObject
        If .InsertRowRange Is Nothing Then .DataBodyRange.Delete
    End With
[/vba]

Автор - krosav4ig
Дата добавления - 09.03.2019 в 14:28
Сергей13 Дата: Суббота, 09.03.2019, 14:56 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, Лаконично, без наворотов. Спасибо!
 
Ответить
Сообщениеkrosav4ig, Лаконично, без наворотов. Спасибо!

Автор - Сергей13
Дата добавления - 09.03.2019 в 14:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программное удаление всех строк динамической таблицы. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!