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

Як видалити рядки на основі значення комірки в Excel?

Щоб швидко видалити або видалити кілька рядків на основі значення комірки в Excel, можливо, вам доведеться спочатку виділити ці цілі рядки, що містять певне значення комірки, а потім перейти до їх видалення. Здається, що немає швидкого способу видалення рядків на основі значення комірки, але за допомогою коду VBA. Ось декілька швидких прийомів, які допоможуть вам.


Видаліть рядки на основі значення комірки за допомогою функції Знайти та замінити

В Excel ви можете застосувати потужну функцію "Знайти та замінити", щоб легко видаляти рядки на основі певного значення комірки. Будь ласка, виконайте наступне:

1. Виберіть діапазон, з якого ви будете видаляти рядки на основі певного значення комірки, і відкрийте діалогове вікно Знайти та замінити натисканням кнопки Ctrl + F клавіші одночасно.

2. У діалоговому вікні Знайти та замінити введіть певне значення комірки (у нашому випадку ми вводимо Сое) в 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 для Excel

Якщо ви встановили Kutools for Excel, його Select Specific Cells Ця функція може допомогти вам швидко видалити рядки з певним значенням. Будь ласка, виконайте наступне:

Kutools для 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 для Excel - Включає понад 300 зручних інструментів для Excel. Повна безкоштовна пробна версія 30-день, кредитна картка не потрібна! Get It Now


Видаліть рядки на основі кількох значень комірок за допомогою Kutools для Excel

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

Kutools для 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 для Excel включає більше 300 зручних інструментів для Excel, які можна спробувати без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!

Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (39)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Фантастичний! Це спрацювало, я трохи змінив його, щоб відповідати тому, що мені потрібно, але чисто геніально. О, версія VBA.
Цей коментар був мінімізований модератором на сайті
Будь-який спосіб змінити If (cell.Value) = "Apple", щоб включити кілька значень?
Цей коментар був мінімізований модератором на сайті
Боббі, спробуй це, воно повинно отримати те, що ти хочеш: Якщо (cell.Value) = "Apple" АБО (cell.Value) = "Понеділок"
Цей коментар був мінімізований модератором на сайті
Чи існує можливість, щоб значення розпізнавало значення чи є > чи = до певного значення?
Цей коментар був мінімізований модератором на сайті
Гей, дуже дякую за сценарій. Мені було цікаво, чи можна використовувати символи підстановки, щоб вибрати будь-що в клітинці, що відповідає, а не певний елемент? Я пробував використовувати ** підстановочні знаки, але, здається, це нічого не робить. Ось що я маю: Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect("B6:B20"), ActiveSheet.UsedRange) Для кожної клітинки в rng Якщо cell.Value Like "*WORDTODELETE*" _ Тоді якщо del - це ніщо, тоді встановіть del = клітинка Інакше: встановіть del = Union(del, cell) End If End Якщо наступна клітинка У разі помилки Resume Next 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, cell As Range, del As Range Set rng = Intersect("A1:C20"), ActiveSheet.UsedRange) Для кожної клітинки в rng If (cell.Value) = "Apple" _ Тоді Якщо del – це нічого, тоді встановіть del = клітинка Інакше: Встановіть del = Union(del, cell) End If End Якщо наступна клітинка У разі помилки Resume Next del.EntireRow.Delete End Sub
Цей коментар був мінімізований модератором на сайті
Я просто хотів сказати спасибі. Це спрацювало як чарівність.
Цей коментар був мінімізований модератором на сайті
Безперечно приголомшливо! Дякуємо за поширення!!!
Цей коментар був мінімізований модератором на сайті
Дякую, це чудово! Швидкий коментар, я спробував функцію пошуку та заміни в Excel 2010. Щоб вибрати всі знайдені результати, мені довелося використовувати Ctrl +A замість Alt + A.
Цей коментар був мінімізований модератором на сайті
Привіт! Як найпростіше видалити рядки, які НЕ містять "Apple", будь ласка? Спасибі
Цей коментар був мінімізований модератором на сайті
Привіт. Чи можна написати це, щоб видалити рядок, за винятком АБО? Тобто - видалити рядки, які повторюються, але ігнорують певне значення. Я хочу видалити дублікати, за винятком випадків, коли розглянутий стовпець містить порожній бік, цей стовпець ще не має дійсних даних. Я працював так само, як і ви, але я закінчив видалення рядків із пробілом у відповідному стовпці, тому я не можу використовувати його як є. Спасибі
Цей коментар був мінімізований модератором на сайті
Дякую за VB Script. Я не можу дочекатися, щоб спробувати це. Запитання: чи можна позначити стовпці для видалення перед їх видаленням та/або скопіювати на окрему вкладку в книзі? Крім того, чи є спосіб запустити цей сценарій одночасно на кількох книгах/файлах?
Цей коментар був мінімізований модератором на сайті
дякую.. це мені дуже допомагає...
Цей коментар був мінімізований модератором на сайті
Я хотів би видалити всі рядки, де стовпець1 = «Яблуко» І стовпець3 = «зелений». будь ласка?
Цей коментар був мінімізований модератором на сайті
Я не впевнений, як це зробити за допомогою макросів або близько того, але один з варіантів, який буде добре виконувати свою роботу, - це додати додатковий стовпець, який перевіряє, чи один стовпець є "яблуком", а інший - "зеленим", а потім дозволити він дає просте значення «так» або «ні». ніж використовувати будь-який з наведених вище параметрів для пошуку значення "так" і видалення рядків на основі цього замість 2 окремих значень.
Цей коментар був мінімізований модератором на сайті
У мене є список магазинів в одному документі. У мене є звіт, який повертає тисячі рядків. номер магазину завжди знаходиться в стовпці A. Чи є код/макрос, який шукатиме звіт і видалятиме всі стовпці з номерами магазинів зі списку магазинів. подумати, що потрібні vlookup і "Do While".
Цей коментар був мінімізований модератором на сайті
Привіт і дуже дякую за код VBA. У мене одне запитання. Чи можна зробити код таким, щоб можна було вибрати кілька значень комірки для видалення одночасно? Наприклад, вибрати Apple і Emily одночасно і видалити їх? Я ціную вашу роботу і з нетерпінням чекаю вашої відповіді. Джоан К
Цей коментар був мінімізований модератором на сайті
Як я можу вказати діапазон A3:D3000 (тобто я не хочу, щоб користувач вибирав діапазон)? Як я можу зробити рядок видалення посиланням на клітинку, напр. G1?
Цей коментар був мінімізований модератором на сайті
чи можна порівняти два стовпці, а потім видалити? знаходиться в діапазоні A3:D3000, якщо клітинка A=x і клітинка B=y потім видалити рядок?
Цей коментар був мінімізований модератором на сайті
Який чудовий. дуже дякую всім. :)
There are no comments posted here yet
Load More

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL