Excel как удалить все четные строки

В общем, мы обычно выбираем или удаляем все остальные строки, но если вы хотите выбрать и удалить все четные строки, такие как вторая строка, четвертая строка, шестая строка и т. Д., Как вы можете их выбрать? Я считаю, что следующие методы вам помогут.

Выберите и удалите каждую четную строку с помощью столбцов справки в Excel

Выберите и удалите все четные строки с помощью Kutools for Excel


стрелка синий правый пузырь Выберите и удалите каждую четную строку с помощью столбцов справки в Excel

В Excel вам нужно сначала создать столбец справки и применить функцию фильтра.

1. Выберите ячейку для ввода этой формулы. = МОД (СТРОКА (); 2) в него и нажмите Enter на клавиатуре и перетащите маркер автозаполнения, чтобы заполнить диапазон строк.

2. Выберите этот столбец формулы и щелкните Данные > Фильтр, теперь кнопка Фильтр добавлена ​​в первую строку столбца. Смотрите скриншот:

док-выбор-каждый-четный-ряд-1

3. Затем щелкните это Фильтр кнопку и проверьте 0 в выпадающем списке см. снимок экрана:

док-выбор-каждый-четный-ряд-2

4. Нажмите OK чтобы закрыть этот раскрывающийся список, и вы увидите только первую строку, и все четные строки будут отфильтрованы. Теперь вы можете выбрать или удалить все четные строки, кроме первой. Смотрите скриншот:

док-выбор-каждый-четный-ряд-3


стрелка синий правый пузырь Выберите и удалите все четные строки с помощью Kutools for Excel

Есть очень простой способ выбрать и удалить каждую четную строку, если у вас есть Kutools for Excel установлены. В Выберите интервальные строки и столбцы Функция может быстро помочь вам выбрать все четные строки и удалить их.

Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас

1. Выберите диапазон строк от второй до конца. Смотрите скриншот:

док-выбор-каждый-четный-ряд-4

2. Затем нажмите Кутулс > Выберите Инструменты > Выберите интервальные строки и столбцы. Смотрите скриншот:

док-выбор-каждый-четный-ряд-5

3. В открывшемся диалоговом окне отметьте Ряды и Выбрать целые строки, и введите 1 в Интервал и строк текстовые поля. Смотрите скриншот:

док-выбор-каждый-четный-ряд-6

4. Нажмите Ok, теперь вы можете видеть, что выбраны все четные строки. Вы можете удалить их правый щелчок > Удалить.

док-выбор-каждый-четный-ряд-7

Нажмите здесь, чтобы узнать больше о функции «Выбрать интервальные строки и столбцы» в Kutools for Excel.


Относительные статьи:

  • Выделите все остальные строки в Excel

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

Возможность удаления каждой второй строки в Excel — это часто возникающая задача, решение которой не займет более 5 минут.

  • Инструкция;
  • Способы применения.

Видеоинструкция

Как удалить каждую вторую строку в Excel

Для выполнения этой задачи потребуется первоначально добавить новый столбец, который можно назвать «Индикатором» и добавить в первые две строчки цифры 1 и 2.

Создание дополнительной строки и цифр в них в Excel

После копируем первые две ячейки, кликнув правой клавишей мыши и нажав на «Копировать» (сочетание клавиш CTRL+C).

Копирование ячеек в Эксель

Далее выделяем область, в которой будет происходить удаление и нажимаем кликаем правой клавишей мыши и выбираем «Вставить скопированные ячейки» (сочетание клавиш CTRL+V).

Растягивание значений в столбце в Excel

После включаем фильтр, перейдя в «Данные»-«Фильтр».

Фильтрация ячеек в Эксель

Следующим этапом кликаем на 1 и удаляем ее из показа.

Выбор показа каждой второй строки в Excel

Выделяем оставшиеся четные строки и при помощи правой клавиши мыши выводим меню и выбираем «Удалить строку».

Удаление каждой второй строки в Excel

Включаем показ нечетных строк.

Остаток после удаления каждой второй строки в Эксель

Все готово, остались лишь нечетные строки.

Удаление каждой третьей или любой другой строки в Эксель

Сделать это можно по той же инструкции, сменив лишь начальные цифры, например, если нужно избавиться от каждой третьей строки, то необходимо использовать повторяющуюся комбинацию 1, 2, 3.

Удаление каждой третей строки в Excel

Аналогичный образом можно обрезать не только 1 но 2 ненужные строки из списка, например, 2 и 4 из 5.

 

Ребята помогите с удалением строк.В таблице много строк с ненужной информацией,на счастье такие строки по счету «нечетные» или «нечетные».Как их удалить?

 

lelya

Пользователь

Сообщений: 14
Регистрация: 01.01.1970

Можно такой способ, немного длинный.  
Вводим колонку(например столбец А), с номерами строк.Затем пишем формулу  
=IF(MOD(A1;2)=1;1;0), протягиваем ее на все строки, отфильтровываем 0 или 1(нечетные или четные) и удаляем ненужное.

 

lelya

Пользователь

Сообщений: 14
Регистрация: 01.01.1970

Сорри, можно, конечно, просто функцию mod

 

Dominique

Пользователь

Сообщений: 23
Регистрация: 01.01.1970

{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный.  
Вводим колонку(например столбец А), с номерами строк.Затем пишем формулу  
=IF(MOD(A1;2)=1;1;0), протягиваем ее на все строки, отфильтровываем 0 или 1(нечетные или четные) и удаляем ненужное.{/post}{/quote}  

  А можно как-то потом автоматически выделить четные/нечетные строки?

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#6

29.05.2010 18:24:31

{quote}{login=Dominique}{date=29.05.2010 06:11}{thema=Re: }{post}{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный.  
Вводим колонку(например столбец А), с номерами строк.Затем пишем формулу  
=IF(MOD(A1;2)=1;1;0), протягиваем ее на все строки, отфильтровываем 0 или 1(нечетные или четные) и удаляем ненужное.{/post}{/quote}  

  А можно как-то потом автоматически выделить четные/нечетные строки?{/post}{/quote}  
можно и автоматически макросом    
но пример тоже нужно  
если без примера  
Sub test()  
   Range(«2:2,4:4,6:6,8:8,10:10»).Delete Shift:=xlUp  
   End Sub  

  выбирает строки с 1 по 10 и удаляет четные  
если будет пример то можно циклом выбрать все четные или нечетные до конца диапазона и удалить

Спасибо

 

Dominique

Пользователь

Сообщений: 23
Регистрация: 01.01.1970

{quote}{login=Юрий М}{date=29.05.2010 06:16}{thema=}{post}

http://www.planetaexcel.ru/tip.php?aid=43

{/post}{/quote}  

  Там только про форматирование, а мне удалить потом нужно…

 

Dominique

Пользователь

Сообщений: 23
Регистрация: 01.01.1970

{quote}{login=R Dmitry}{date=29.05.2010 06:24}{thema=Re: Re: }{post}{quote}{login=Dominique}{date=29.05.2010 06:11}{thema=Re: }{post}{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный.  
Вводим колонку(например столбец А), с номерами строк.Затем пишем формулу  
=IF(MOD(A1;2)=1;1;0), протягиваем ее на все строки, отфильтровываем 0 или 1(нечетные или четные) и удаляем ненужное.{/post}{/quote}  

  А можно как-то потом автоматически выделить четные/нечетные строки?{/post}{/quote}  
можно и автоматически макросом    
но пример тоже нужно  
если без примера  
Sub test()  
   Range(«2:2,4:4,6:6,8:8,10:10»).Delete Shift:=xlUp  
   End Sub  

  выбирает строки с 1 по 10 и удаляет четные  
если будет пример то можно циклом выбрать все четные или нечетные до конца диапазона и удалить{/post}{/quote}  

  Спасибо. На досуге испробую. Надо прайс «причесать»

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Public Sub qwe()  
Dim i As Integer  
For i = 320 To 1 Step -1 ‘вместо 320 последнюю строку Вашей таблицы.  
If i Mod 2 = 0 Then ‘0 — Для четных. Для нечетных 1  
Rows(i).Delete  
End If  
Next  
End Sub

Я сам — дурнее всякого примера! …

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Я сам — дурнее всякого примера! …

 

Dominique

Пользователь

Сообщений: 23
Регистрация: 01.01.1970

#11

31.05.2010 22:58:15

{quote}{login=KuklP}{date=29.05.2010 07:16}{thema=}{post}Public Sub qwe()  
Dim i As Integer  
For i = 320 To 1 Step -1 ‘вместо 320 последнюю строку Вашей таблицы.  
If i Mod 2 = 0 Then ‘0 — Для четных. Для нечетных 1  
Rows(i).Delete  
End If  
Next  
End Sub{/post}{/quote}  

  Попробовал. Стирает. Сильно! :-)))

На чтение 3 мин. Просмотров 47 Опубликовано 20.05.2021

Обычно мы выбираем или удаляем все остальные строки, но если вы хотите выбрать и удалить все четные строки, такие как вторая строка, четвертая строка, шестая строка и т. д., как их выбрать? Я считаю, что следующие методы помогут вам.

Выбирать и удалять все четные строки с помощью столбцов справки в Excel.

Выберите и удалите все четные строки с помощью Kutools for Excel

Вкладка Office Включите редактирование и просмотр с вкладками в Office и сделайте свою работу Намного проще …

Подробнее … Скачать бесплатно …

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.

  • Повторное использование чего угодно: добавление наиболее часто используемых или сложных формул, диаграмм и всего остального в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
  • Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
  • Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
  • Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
  • Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

Подробнее … Бесплатная загрузка …


Содержание

  1. Выбирать и удалять каждые четные строки столбцы справки в Excel
  2. Выберите и удалите все четные строки с помощью Kutools for Excel
  3. Относительные статьи:

Выбирать и удалять каждые четные строки столбцы справки в Excel

Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и уменьшите тысячи щелчков мышью каждый день!

В Excel вам нужно сначала создать столбец справки и применить функцию фильтра.

1. Выберите ячейку, чтобы ввести в нее эту формулу = MOD (ROW (), 2) , и нажмите кнопку Enter на клавиатуре и перетащите автозаполнение дескриптор для заполнения диапазона строк.

2. Выберите этот столбец формулы и нажмите Данные > Фильтр . Теперь кнопка «Фильтр» добавлена ​​в первую строку столбца. См. Снимок экрана:

3. Затем нажмите эту кнопку Фильтр и отметьте 0 в раскрывающемся списке, см. Снимок экрана:

4. Нажмите OK , чтобы закрыть этот раскрывающийся список, и вы увидите только первую строку, и все четные строки отфильтрованы. Теперь вы можете выбрать или удалить все четные строки, кроме первой. См. Снимок экрана:


Выберите и удалите все четные строки с помощью Kutools for Excel

Есть очень простой способ выбрать и удалить каждую четную строку, если у вас установлен Kutools for Excel . Функция Выбрать интервальные строки и столбцы может быстро помочь вам выбрать все четные строки и удалить их.

Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас

1. Выберите диапазон строк от второй до конца. См. Снимок экрана:

2. Затем нажмите Kutools > Выбрать инструменты > Выбрать интервальные строки и столбцы . См. Снимок экрана:

3. В открывшемся диалоговом окне установите флажки Строки и Выбрать целые строки и введите 1 в Интервал и текстовые поля “Строки” . См. Снимок экрана:

4. Нажмите ОК , теперь вы можете видеть, что все четные строки выбраны. Вы можете удалить их, щелкнув правой кнопкой мыши > Удалить .

Нажмите здесь, чтобы узнать больше о функции выбора интервальных строк и столбцов в Kutools for Excel.


Относительные статьи:

  • Выбрать все остальные строки в Excel.

Хитрости »

28 Май 2011              644610 просмотров


Как удалить строки по условию?

Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.

Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:

  • Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
  • устанавливаем фильтр:
    • для Excel 2003: ДанныеФильтрАвтофильтр
    • для Excel 2007-2010: вкладка Данные(Data)Фильтр(Filter)(или вкладка Главная(Home)Сортировка и фильтр(Sort&Filter)Фильтр(Filter))

Теперь выбираем условие для фильтра:

  • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
  • Для 2007-2010 Excel нужно выбрать Текстовые фильтры(Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр(Custom Filter) и ввести значения для отбора в форме

После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.


 
Способ второй:

применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

Sub Del_SubStr()
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    Dim lCol As Long      'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim lMet As Long
    Dim arr
 
    sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
    If sSubStr = "" Then lMet = 0 Else lMet = 1
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
    If lCol = 0 Then Exit Sub
 
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    arr = Cells(1, lCol).Resize(lLastRow).Value
    Application.ScreenUpdating = 0
    Dim rr As Range
    For li = 1 To lLastRow 'цикл с первой строки до конца
        If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub

Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt+F8, после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet, то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

Sub Del_SubStr()
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    Dim lCol As Long 'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim arr
 
    sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
    If lCol = 0 Then Exit Sub
 
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    arr = Cells(1, lCol).Resize(lLastRow).Value
 
    Application.ScreenUpdating = 0
    Dim rr As Range
    For li = 1 To lLastRow 'цикл с первой строки до конца
        If CStr(arr(li, 1)) = sSubStr Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub

Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения(Cells(li, lCol) = sSubStr) с равно на неравенство(Cells(li, lCol) <> sSubStr) и тогда удаляться будут строки, значения ячеек которых не равно указанному.


УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

Sub Del_Array_SubStr()
    Dim sSubStr As String    'искомое слово или фраза
    Dim lCol As Long    'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim avArr, lr As Long
    Dim arr
 
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
    If lCol = 0 Then Exit Sub
    Application.ScreenUpdating = 0
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    'заносим в массив значения листа, в котором необходимо удалить строки
    arr = Cells(1, lCol).Resize(lLastRow).Value
    'Получаем с Лист2 значения, которые надо удалить в активном листе
    With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление
        avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
    End With
    'удаляем
    Dim rr As Range
    For lr = 1 To UBound(avArr, 1)
        sSubStr = avArr(lr, 1)
        For li = 1 To lLastRow 'цикл с первой строки до конца
            If CStr(arr(li, 1)) = sSubStr Then
                If rr Is Nothing Then
                    Set rr = Cells(li, 1)
                Else
                    Set rr = Union(rr, Cells(li, 1))
                End If
            End If
            DoEvents
        Next li
        DoEvents
    Next lr
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub

Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:

If CStr(arr(li, 1)) = sSubStr Then

заменить на такую:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

УДАЛЕНИЕ ИЗ ЛИСТА СТРОК, КОТОРЫХ НЕТ В СПИСКЕ ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)

Т.к. в последнее время стало поступать все больше и больше вопросов как не удалять значения по списку, а наоборот — оставить в таблице только те значения, которые перечислены в списке — решил дополнить статью и таким кодом.
Значения, которые необходимо оставить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — после работы кода на листе будут оставлены только те строки, в которых присутствует хоть одно из перечисленных в списке значений. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
В отличие от приведенных выше кодов, данный код ориентирован на то, что значения в списке указаны не полностью. Т.е. если необходимо оставить только те ячейки, в которых встречается слово «активы», то в списке надо указать только это слово. В этом случае если в ячейке будет записана фраза «Нематериальные активы» или «Активы сторонние» — эти ячейки не будут удалены, т.к. в них встречается слово «активы». Регистр букв при этом неважен.

'процедура оставляет в листе только те значения, которые перечислены в списке
Sub LeaveOnlyFoundInArray()
    Dim sSubStr As String   'искомое слово или фраза
    Dim lCol As Long        'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim avArr, lr As Long
    Dim arr
    Dim IsFind As Boolean
 
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
    If lCol = 0 Then Exit Sub
    Application.ScreenUpdating = 0
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    'заносим в массив значения листа, в котором необходимо удалить строки
    arr = Cells(1, lCol).Resize(lLastRow).Value
    'Получаем с Лист2 значения, которые надо удалить в активном листе
    With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление
        avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
    End With
    'удаляем
    Dim rr As Range
    For li = 1 To lLastRow 'цикл с первой строки таблицы до конца
        IsFind = False
        For lr = 1 To UBound(avArr, 1) 'цикл по списку значений на удаление
            sSubStr = avArr(lr, 1)
            If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then
                IsFind = True
            End If
            DoEvents
        Next lr
        'если значение таблицы не найдено в списке - удаляем строку
        If Not IsFind Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
        DoEvents
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub

Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

заменить на такую:

If CStr(arr(li, 1)) = sSubStr Then

Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:

If Not rr Is Nothing Then rr.EntireRow.Delete

заменить на такую:

If Not rr Is Nothing Then rr.EntireRow.Hidden = True

По умолчанию все коды начинают просмотр строк с первой по последнюю заполненную на листе. И если необходимо удалять строки не с первой или не по последнюю, то надо внести корректировки в эту строку:

For li = 1 To lLastRow 'цикл с первой строки до конца

1 — это первая строка; lLastRow — определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

For li = 7 To lLastRow 'цикл с седьмой строки до конца

А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:

For li = 3 To 300 'цикл с третьей строки до трехсотой

Так же см.:
Что такое макрос и где его искать?
Что такое модуль? Какие бывают модули?
Как создать кнопку для вызова макроса на листе
Удаление всех пустых строк в таблице
Удаление пустых столбцов на листе
Установить Быстрый фильтр
Фильтр


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Excel как удалить все фильтры
  • Excel как удалить все строки содержащие значение
  • Excel как удалить все строки с символом
  • Excel как удалить все строки в группировке
  • Excel как удалить все ссылки на ячейку