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

Вход

Регистрация

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

 

= Мир MS Excel/Готовые решения

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35713
Главная » Готовые решения » VBA » Полезные приёмы

Удаление строк по списку
06.04.2016, 22:01
[ Файл-пример (16.6Kb) ]

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

Sub ListRemove(ByVal Col As Integer)

Dim i As Integer

Range(Cells(1, Col + 1), Cells(1, Col + 2)).Value = "Есть"
Cells(2, Col + 2).Value = True
Names.Add Name:="Нет", RefersTo:=Range(Cells(2, Col), Cells(Cells(rows.Count, Col).End(xlUp).Row, Col))
i = Range(Cells(1, 1), Cells(1, Col - 2)).Find(what:=Cells(1, Col).Value, lookat:=xlWhole).Column
Range(Cells(2, Col + 1), Cells(Cells(rows.Count, 1).End(xlUp).Row, Col + 1)).FormulaR1C1 = "=ISNA(MATCH(RC[" & i - Col - 1 & "],Нет,0))"
ActiveSheet.UsedRange.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range(Cells(1, Col + 2), Cells(2, Col + 2)), CopyToRange:=Cells(1, Col + 4)
Names("Нет").Delete
For i = 1 To Col + 3
columns(1).Delete
Next i
For i = 1 To 3
columns(Col).Delete
Next i

End Sub
Добавил: StoTisteg | | Теги: VBA
Просмотров: 274 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!