Всем доброго времени суток. Прошу помощи в написании несложного макроса, т.к. сам я в этом профан
Суть: Есть массив данных из нескольких столбцов и пары тысяч строк. Если поставить на один столбец "фильтр" и ввести стоп фразу (несколько букв или 2 слова) то покажутся (если есть) строки, которые можно выделить и удалить. Затем ввести новое слово и т.д. Но слов этих несколько сотен. И работа не разовая.
Нужно: Автоматизировать это дело макросом. Чтобы происходила фильтрация данных в ячейках заданного столбца и если в значении встречается стоп слово, то вся строка вырезалась и перетаскивалась на другую страницу или в конец этой страницы или хотя бы просто удалялась. Надеюсь, понятно объяснил
Пример (на нескольких страницах) прикладываю:
Заранее спасибо
Всем доброго времени суток. Прошу помощи в написании несложного макроса, т.к. сам я в этом профан
Суть: Есть массив данных из нескольких столбцов и пары тысяч строк. Если поставить на один столбец "фильтр" и ввести стоп фразу (несколько букв или 2 слова) то покажутся (если есть) строки, которые можно выделить и удалить. Затем ввести новое слово и т.д. Но слов этих несколько сотен. И работа не разовая.
Нужно: Автоматизировать это дело макросом. Чтобы происходила фильтрация данных в ячейках заданного столбца и если в значении встречается стоп слово, то вся строка вырезалась и перетаскивалась на другую страницу или в конец этой страницы или хотя бы просто удалялась. Надеюсь, понятно объяснил
hghn66, ну и что это за пример? Там нет ни одного совпадения. Не говоря уж о перлах типа "колбоса", "тесто слобное".
По правилам форума я бы даже не смог опубликовать реальный пример. В общем-то столбцы и заголовки можно двигать как угодно, если это облегчит исполнение. Стоп слова можно хранить хоть в отдельном блокнотике, хоть засунуть в 1 ячейки, отделив "", это тоже не влияет ни на что. К тому же они постоянно редактируются. В примере, кстати, совпадения типо уже отбракованы и находятся на 2 странице Совпадения по стоп словам, в теории может и не быть вовсе. И фильтрация по сути идет по одному из столбцов, в котором могут быть перлы и повеселее...
P.s. Извиняюсь, если что не так. Хотел сделать максимально просто и наглядно, в реальной жизни все несколько более унылое. Мне бы хоть самый простецкий образец с 2 стоп словами и 3 строками данных увидеть. А то я в excel дуб дубом, но по аналогии уже не сложно... Чуть изменил, теперь совпадения есть, но за бред сорри, такие дела...
hghn66, ну и что это за пример? Там нет ни одного совпадения. Не говоря уж о перлах типа "колбоса", "тесто слобное".
По правилам форума я бы даже не смог опубликовать реальный пример. В общем-то столбцы и заголовки можно двигать как угодно, если это облегчит исполнение. Стоп слова можно хранить хоть в отдельном блокнотике, хоть засунуть в 1 ячейки, отделив "", это тоже не влияет ни на что. К тому же они постоянно редактируются. В примере, кстати, совпадения типо уже отбракованы и находятся на 2 странице Совпадения по стоп словам, в теории может и не быть вовсе. И фильтрация по сути идет по одному из столбцов, в котором могут быть перлы и повеселее...
P.s. Извиняюсь, если что не так. Хотел сделать максимально просто и наглядно, в реальной жизни все несколько более унылое. Мне бы хоть самый простецкий образец с 2 стоп словами и 3 строками данных увидеть. А то я в excel дуб дубом, но по аналогии уже не сложно... Чуть изменил, теперь совпадения есть, но за бред сорри, такие дела...hghn66
Public Sub www() Dim i&, a, r As Range Application.ScreenUpdating = 0 a = Sheets("Стоп слова").[a1].CurrentRegion.Value On Error Resume Next With Sheets("Лист1") Set r = Range(.[d1], .[d65536].End(xlUp)) For i = 1 To UBound(a) r.AutoFilter 1, "*" & a(i, 1) & "*", , , 0 If r.SpecialCells(12).Count > 1 Then _ r.Offset(1).SpecialCells(12).EntireRow.Delete Next .AutoFilterMode = 0 Application.ScreenUpdating = -1 End With End Sub
[/vba]
[vba]
Код
Public Sub www() Dim i&, a, r As Range Application.ScreenUpdating = 0 a = Sheets("Стоп слова").[a1].CurrentRegion.Value On Error Resume Next With Sheets("Лист1") Set r = Range(.[d1], .[d65536].End(xlUp)) For i = 1 To UBound(a) r.AutoFilter 1, "*" & a(i, 1) & "*", , , 0 If r.SpecialCells(12).Count > 1 Then _ r.Offset(1).SpecialCells(12).EntireRow.Delete Next .AutoFilterMode = 0 Application.ScreenUpdating = -1 End With End Sub
Public Sub www() Dim i&, a, r As Range Application.ScreenUpdating = 0 a = Sheets("Стоп слова").[a1].CurrentRegion.Value On Error Resume Next Set r = Range(Sheets("Лист1").[d1], Sheets("Лист1").[d65536].End(xlUp)) For i = 1 To UBound(a) r.AutoFilter 1, "*" & a(i, 1) & "*", , , 0 If r.SpecialCells(12).Count > 1 Then With r.Offset(1).SpecialCells(12).EntireRow .Copy Sheets("Брак").[a65536].End(xlUp)(2) .Delete End With End If Next r.AutoFilter 1 Application.ScreenUpdating = -1 End Sub
[/vba]
[vba]
Код
Public Sub www() Dim i&, a, r As Range Application.ScreenUpdating = 0 a = Sheets("Стоп слова").[a1].CurrentRegion.Value On Error Resume Next Set r = Range(Sheets("Лист1").[d1], Sheets("Лист1").[d65536].End(xlUp)) For i = 1 To UBound(a) r.AutoFilter 1, "*" & a(i, 1) & "*", , , 0 If r.SpecialCells(12).Count > 1 Then With r.Offset(1).SpecialCells(12).EntireRow .Copy Sheets("Брак").[a65536].End(xlUp)(2) .Delete End With End If Next r.AutoFilter 1 Application.ScreenUpdating = -1 End Sub
Возможно ли изменить макрос выше, что бы фильтрация и копирование отфильтрованного происходило только при точном совпадении слов на листе "стоп слова"
Доброго времени суток!
Возможно ли изменить макрос выше, что бы фильтрация и копирование отфильтрованного происходило только при точном совпадении слов на листе "стоп слова"vik313
Нужна модификация макроса, который используется в этой статье.
На листе KV в колонке А содержатся числовые значения, на основе которых фильтруются данные колонки H листа Список. После фильтрации значения колонок (U, K, PL, Kl) копируются на слой Брак.
Нужна модификация макроса, который используется в этой статье.
На листе KV в колонке А содержатся числовые значения, на основе которых фильтруются данные колонки H листа Список. После фильтрации значения колонок (U, K, PL, Kl) копируются на слой Брак.vik313