Note: The other languages of the website are Google-translated. Back to English

Как удалить строки на основе значения ячейки в Excel?

Чтобы быстро удалить или удалить несколько строк на основе значения ячейки в Excel, вам может потребоваться сначала выделить эти целые строки, содержащие определенное значение ячейки, а затем перейти к их удалению. Кажется, что нет быстрого способа удалить строки на основе значения ячейки, но с использованием кода VBA. Вот несколько простых приемов, которые могут вам помочь.


Удалите строки на основе значения ячейки с помощью функции поиска и замены

В Excel вы можете применить мощную функцию «Найти и заменить», чтобы легко удалять строки на основе определенного значения ячейки. Пожалуйста, сделайте следующее:

1. Выберите диапазон, в котором вы будете удалять строки на основе определенного значения ячейки, и откройте диалоговое окно «Найти и заменить», нажав кнопку Ctrl + F ключи одновременно.

2. В диалоговом окне «Найти и заменить» введите определенное значение ячейки (в нашем случае мы вводим Soe) в Find what и нажмите Find All кнопка. См. Первый снимок экрана ниже:

3. Выберите все результаты поиска в нижней части диалогового окна «Найти и заменить» и закройте это диалоговое окно. (Внимание: Вы можете выбрать один из результатов поиска, а затем Ctrl + A клавиши для выбора всех найденных результатов. См. Второй снимок экрана выше.)
И тогда вы можете увидеть, что все ячейки, содержащие определенное значение, выбраны.

4. Щелкните правой кнопкой мыши выбранные ячейки и выберите Delete из контекстного меню. А затем проверьте Entire row во всплывающем диалоговом окне Удалить и щелкните OK кнопка. Теперь вы увидите, что все ячейки, содержащие определенное значение, удалены. Смотрите скриншоты ниже:

А затем были удалены целые строки на основе уже определенного значения.


Удалить строки на основе значения ячейки с кодом VBA

С помощью следующего кода VBA вы можете быстро удалить строки с определенным значением ячейки, выполните следующие действия:

1, нажмите Alt + F11 ключи одновременно, чтобы открыть Microsoft Visual Basic for applications окно,

2. Нажмите Insert > Module, и введите в модуль следующий код:

VBA: удалить целые строки на основе значения ячейки

Sub DeleteRows()
'Updateby20211217
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As String
Dim xTitleId As String
Dim xArr
Dim xF As Integer
Dim xWSh As Worksheet
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, rng.Address, Type:=8)
If InputRng Is Nothing Then Exit Sub
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2)
Set xWSh = InputRng.Worksheet
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
            Set DeleteRng = DeleteRng.EntireRow
        End If
    End If
Next
xArr = Split(DeleteRng.AddressLocal, ",")
DeleteRng.Select
DeleteRng.Delete
For xF = UBound(xArr) To 0 Step -1
    Set DeleteRng = xWSh.Range(xArr(xF))
    DeleteRng.Delete
Next
End Sub

3, Затем нажмите Run кнопку для запуска кода.

4. Во всплывающем диалоговом окне выберите диапазон, в котором вы будете удалять строки на основе определенного значения, и нажмите кнопку OK кнопку.

5. В другом диалоговом окне введите определенное значение, на основе которого вы будете удалять строки, и нажмите кнопку OK кнопка. Смотрите скриншот:

И тогда вы увидите, что целые строки были удалены на основе уже указанного значения.


Удалите строки на основе одного или двух значений ячеек с помощью Kutools for Excel

Если вы установили Kutools for Excel, Его Select Specific Cells Функция может помочь вам быстро удалить строки с определенным значением. Пожалуйста, сделайте следующее:

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Выберите диапазон, в котором вы будете удалять строки на основе определенного значения, и нажмите Kutools > Select > Select Specific Cells. Смотрите скриншот:

2. В открывшемся диалоговом окне Select Specified Cells установите флажок Entire row выберите, выберите Contains от Specific type раскрывающийся список, введите указанное значение в правое поле и щелкните значок Ok кнопку (см. снимок экрана выше).
После применения этой функции появится диалоговое окно, в котором будет показано, сколько ячеек было найдено в соответствии с указанными критериями. Пожалуйста, нажмите на OK чтобы закрыть его.

3. Теперь выбираются целые строки с определенным значением. Щелкните правой кнопкой мыши выбранные строки и щелкните значок Delete из контекстного меню. Смотрите скриншот ниже:

Внимание: Это Select Specific Cells функция поддерживает удаление строк на одно или два определенных значения. Для удаления строк на основе двух указанных значений укажите другое значение в поле Specific type раздел диалогового окна Select Specific Cells, как показано на следующем снимке экрана:

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Удалите строки на основе нескольких значений ячеек с помощью Kutools for Excel

В некоторых случаях вам может потребоваться удалить строки на основе нескольких значений ячеек из другого столбца / списка в Excel. Здесь я представлю Kutools for Excel's Select Same & Different Cells функция, чтобы быстро и легко решить эту проблему.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Нажмите Kutools > Select > Select Same & Different Cells , чтобы открыть диалоговое окно Выбрать одинаковые и разные ячейки.

2. В открытии Select Same & Different Cells диалоговое окно, сделайте следующее (см. снимок экрана):

(1) В Find values in поле, выберите столбец, в котором вы найдете определенные значения;
(2) В According to поле, выберите столбец / список с несколькими значениями, на основе которых вы будете удалять строки;
(3) В Based on раздел, пожалуйста, проверьте Each row вариант;
(4) В Find раздел, пожалуйста, проверьте Same Values вариант;
(5) Проверьте Select entire rows опция внизу открывающегося диалогового окна.
Внимание: Если два указанных столбца содержат один и тот же заголовок, проверьте My data has headers опцию.

3, Нажмите Ok кнопку, чтобы применить эту утилиту. Затем появляется диалоговое окно, в котором показано, сколько строк было выбрано. Просто нажмите на OK чтобы закрыть его.

Затем были выбраны все строки, содержащие значения из указанного списка.

4. Нажмите Home > Delete > Delete Sheet Rows для удаления всех выбранных строк.


Демо: удаление строк на основе одного или нескольких значений ячеек в Excel


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

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

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

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

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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (39)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Фантастический! Это сработало, я немного изменил его, чтобы он соответствовал тому, что мне было нужно, но чисто гениально. О, версия VBA.
Этот комментарий был сведен к минимуму модератором на сайте
Любой способ изменить If (cell.Value) = «Apple», чтобы включить несколько значений?
Этот комментарий был сведен к минимуму модератором на сайте
Бобби, попробуй это, должно получиться то, что ты хочешь: If (cell.Value) = "Apple" ИЛИ (cell.Value) = "Monday"
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ, чтобы значение распознавало значение > или = для определенного значения?
Этот комментарий был сведен к минимуму модератором на сайте
Эй, большое спасибо за сценарий. Мне было интересно, можете ли вы использовать подстановочные знаки, чтобы вы могли выбрать что-нибудь в ячейке, которая соответствует, а не конкретный элемент? Я пробовал использовать подстановочные знаки **, но, похоже, это ничего не дает. Вот что у меня есть: Sub Delete_Rows() Dim rng As Range, ячейка As Range, del As Range Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange) Для каждой ячейки In rng If cell.Value Like "*WORDTODELETE*" _ Then If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Следующая ячейка При ошибке Возобновить Далее del.EntireRow.Delete End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Сердечное спасибо - всегда забавно, когда парень из отдела маркетинга пытается писать код, и эта информация была очень полезной. Мне не удалось заставить код охватывать несколько столбцов ("AA2:AA3000" работает, "AB2:AB3000" работает, но "AA2:AB3000" не работает. Никакого сногсшибательного Kaboom нет - он просто ничего не делает. Я решил эту проблему (по-любительски, я полагаю), запустив несколько макросов последовательно, но, вероятно, есть более элегантный способ Еще раз спасибо за вашу помощь, Джим (Мелвилл, Нью-Йорк)
Этот комментарий был сведен к минимуму модератором на сайте
Я получаю: ошибка времени выполнения "13": несоответствие типов. Отладка выделяет раздел If (cell.Value) = "FALSE" _ Then. Я полностью потерялся в MVB, любая помощь будет оценена по достоинству.
Этот комментарий был сведен к минимуму модератором на сайте
Допустим, я вставил приведенный ниже код, чтобы удалить все мои строки, содержащие яблоко, но затем я хочу, чтобы он продолжился после того, как это будет сделано, и удалю все строки, содержащие банан? Я пытался просто продублировать код, но он, кажется, останавливается после Apple. Благодарю. Sub Delete_Rows() Dim rng As Range, ячейка As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) Для каждой ячейки In rng If (cell.Value) = "Apple" _ Тогда, если del is Nothing, тогда установите del = cell, иначе: Set del = Union (del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я просто хотел сказать спасибо. Это сработало как шарм.
Этот комментарий был сведен к минимуму модератором на сайте
Определенно офигенно! Благодарю за раздачу!!!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, это здорово! Быстрый комментарий, я попробовал функцию поиска и замены в Excel 2010. Чтобы выбрать все найденные результаты, мне пришлось использовать Ctrl + A вместо Alt + A.
Этот комментарий был сведен к минимуму модератором на сайте
Привет. Какой самый простой способ удалить строки, которые НЕ содержат «Apple», пожалуйста? Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Любой способ написать это, чтобы удалить строку, с исключением ИЛИ? Т.е. удалить строки, которые являются дубликатами, но игнорировать определенное значение. Я хочу удалить дубликаты, за исключением тех случаев, когда рассматриваемый столбец содержит пустое значение, потому что в этом столбце еще нет действительных данных. Я работал так же, как и вы, но я закончил удаление строк с пробелом в рассматриваемом столбце, поэтому я не могу использовать его как есть. Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за скрипт VB. Я не могу дождаться, чтобы попробовать это. Вопрос: Можно ли как-то пометить столбцы для удаления перед их удалением и/или скопировать на отдельную вкладку в книге? Кроме того, есть ли способ запустить этот скрипт для нескольких книг/файлов одновременно?
Этот комментарий был сведен к минимуму модератором на сайте
спасибо.. мне очень помогает...
Этот комментарий был сведен к минимуму модератором на сайте
Я хотел бы удалить все строки, где столбец1 = «Яблоко» И столбец3 = «зеленый». пожалуйста?
Этот комментарий был сведен к минимуму модератором на сайте
Я не уверен, как это сделать с помощью макроса или около того, но один из вариантов, который отлично справится со своей задачей, — добавить дополнительный столбец, который проверяет, является ли один столбец «яблочным», а другой — «зеленым», а затем пусть это дает простое значение «да» или «нет». чем использовать любую из вышеперечисленных опций для поиска значения «да» и удаления строк на основе этого вместо двух отдельных значений.
Этот комментарий был сведен к минимуму модератором на сайте
у меня есть список магазинов в одном документе. У меня есть отчет, который возвращает тысячу строк. номер магазина всегда находится в столбце A. Есть ли код/макрос, который будет искать отчет и удалять все столбцы с номерами магазинов из списка магазинов. думая, что необходимы vlookup и "Do While".
Этот комментарий был сведен к минимуму модератором на сайте
Привет и большое спасибо за код VBA. У меня есть один вопрос. Можно ли сделать код таким, чтобы можно было выбрать несколько значений ячеек для удаления одновременно? Например, одновременно выбрать Apple и Emily и удалить их? Я ценю вашу работу и с нетерпением жду вашего ответа. Джоан К.
Этот комментарий был сведен к минимуму модератором на сайте
Как указать диапазон A3:D3000 (т.е. я не хочу, чтобы пользователь выбирал диапазон)? Как я могу сделать строку удаления ссылкой на ячейку, например. G1?
Этот комментарий был сведен к минимуму модератором на сайте
можно ли сравнить два столбца, а затем удалить? находится в диапазоне A3: D3000, если ячейка A = x и ячейка B = y, а затем удалить строку?
Этот комментарий был сведен к минимуму модератором на сайте
Какой большой. всем огромное спасибо. :)
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL