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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для удаления строк - Мир MS Excel

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

Excel 2013
Здравствуйте. в сети нашел макрос
[vba]
Код
Sub УдалениеСтрокПоНесколькимУсловиям()
    Dim ra As Range, delra As Range
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ' ищем и удаляем строки, содержащие заданный текст
    ' (можно указать сколько угодно значений, и использовать подстановочные знаки)
    УдалятьСтрокиСТекстом = Array("Наименование *", "Количество", _
                    "текст?", "цен*сти", "*78*")

    ' перебираем все строки в используемом диапазоне листа
    For Each ra In ActiveSheet.UsedRange.Rows
        ' перебираем все фразы в массиве
        For Each word In УдалятьСтрокиСТекстом
            ' если в очередной строке листа найден искомый текст
            If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                ' добавляем строку в диапазон для удаления
                If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
            End If
        Next word
    Next

    ' если подходящие строки найдены, то: (оставьте одну из 2 следующих строк)
    If Not delra Is Nothing Then delra.EntireRow.Hidden = True    ' скрываем их
    If Not delra Is Nothing Then delra.EntireRow.Delete    ' удаляем их
[/vba]

Мне нужно оставить только строки которые содержат UE_WM16, UE_WM15

Я подставил значения для поиска и удаления и вместо всего листа поменял диапазон поиска на Range("H:H").
С одним условием работает все нормально. хоть и долго. Но при двух макрос удаляет все данные.Подскажите может я что то не так поменял?
К сообщению приложен файл: 66.xlsm (38.4 Kb)
 
Ответить
СообщениеЗдравствуйте. в сети нашел макрос
[vba]
Код
Sub УдалениеСтрокПоНесколькимУсловиям()
    Dim ra As Range, delra As Range
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ' ищем и удаляем строки, содержащие заданный текст
    ' (можно указать сколько угодно значений, и использовать подстановочные знаки)
    УдалятьСтрокиСТекстом = Array("Наименование *", "Количество", _
                    "текст?", "цен*сти", "*78*")

    ' перебираем все строки в используемом диапазоне листа
    For Each ra In ActiveSheet.UsedRange.Rows
        ' перебираем все фразы в массиве
        For Each word In УдалятьСтрокиСТекстом
            ' если в очередной строке листа найден искомый текст
            If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                ' добавляем строку в диапазон для удаления
                If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
            End If
        Next word
    Next

    ' если подходящие строки найдены, то: (оставьте одну из 2 следующих строк)
    If Not delra Is Nothing Then delra.EntireRow.Hidden = True    ' скрываем их
    If Not delra Is Nothing Then delra.EntireRow.Delete    ' удаляем их
[/vba]

Мне нужно оставить только строки которые содержат UE_WM16, UE_WM15

Я подставил значения для поиска и удаления и вместо всего листа поменял диапазон поиска на Range("H:H").
С одним условием работает все нормально. хоть и долго. Но при двух макрос удаляет все данные.Подскажите может я что то не так поменял?

Автор - Zoor
Дата добавления - 21.01.2018 в 21:35
doober Дата: Понедельник, 22.01.2018, 01:11 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
Этот макрос должен чуток быстрее отработать.




Сообщение отредактировал doober - Понедельник, 22.01.2018, 01:13
 
Ответить
СообщениеЗдравствуйте.
Этот макрос должен чуток быстрее отработать.

Автор - doober
Дата добавления - 22.01.2018 в 01:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для удаления строк (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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