Przejdź do głównej zawartości

Jak usunąć wiersze na podstawie wartości komórki w programie Excel?

Aby szybko usunąć lub usunąć wiele wierszy na podstawie wartości komórki w programie Excel, może być konieczne wybranie najpierw tych całych wierszy zawierających określoną wartość komórki, a następnie usunięcie ich. Wygląda na to, że nie ma szybkiego sposobu usuwania wierszy na podstawie wartości komórki, ale przy użyciu kodu VBA. Oto kilka szybkich wskazówek, które mogą Ci pomóc.


Usuń wiersze na podstawie wartości komórki za pomocą funkcji Znajdź i zamień

W programie Excel możesz zastosować potężną funkcję Znajdź i zamień, aby łatwo usunąć wiersze na podstawie określonej wartości komórki. Wykonaj następujące czynności:

1. Wybierz zakres, w którym usuniesz wiersze na podstawie określonej wartości komórki i otwórz okno dialogowe Znajdowanie i zamienianie, naciskając klawisz Ctrl + F klucze jednocześnie.

2. W oknie dialogowym Znajdź i zamień wpisz określoną wartość komórki (w naszym przypadku wpisujemy Soe) do Find what i kliknij przycisk Find All przycisk. Zobacz pierwszy zrzut ekranu poniżej:

3. Wybierz wszystkie wyniki wyszukiwania u dołu okna dialogowego Znajdź i zamień i zamknij to okno dialogowe. (Note: Możesz wybrać jeden z wyników wyszukiwania, a następnie Ctrl + A klawisze, aby wybrać wszystkie znalezione wyniki. Zobacz drugi zrzut ekranu powyżej.)
Następnie możesz zobaczyć, że wybrane są wszystkie komórki zawierające określoną wartość.

4. Śmiało kliknij prawym przyciskiem myszy wybrane komórki i wybierz plik Delete z menu po kliknięciu prawym przyciskiem myszy. A następnie sprawdź Entire row w wyskakującym oknie dialogowym Usuń i kliknij OK przycisk. Teraz zobaczysz, że wszystkie komórki zawierające określoną wartość zostały usunięte. Zobacz zrzuty ekranu poniżej:

A potem całe wiersze zostały już usunięte na podstawie określonej wartości.


Usuń wiersze na podstawie wartości komórki z kodem VBA

Za pomocą następującego kodu VBA możesz szybko usunąć wiersze z określoną wartością komórki, wykonaj następujące czynności:

1, wciśnij Alt + F11 klucze w tym samym czasie, aby otworzyć Microsoft Visual Basic for applications okno,

2. Kliknij Insert > Modulei wprowadź następujący kod do modułu:

VBA: Usuń całe wiersze na podstawie wartości komórki

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. Następnie kliknij przycisk Run przycisk, aby uruchomić kod.

4. W wyskakującym oknie dialogowym wybierz zakres, w którym chcesz usunąć wiersze na podstawie określonej wartości, i kliknij OK przycisk.

5. W innym oknie dialogowym wpisz określoną wartość, na podstawie której chcesz usunąć wiersze, i kliknij OK przycisk. Zobacz zrzut ekranu:

A potem zobaczysz, że całe wiersze zostały już usunięte na podstawie określonej wartości.


Usuń wiersze na podstawie jednej lub dwóch wartości komórek za pomocą Kutools for Excel

Jeśli masz zainstalowany Kutools for Excel, jego Select Specific Cells Funkcja może pomóc szybko usunąć wiersze z określoną wartością. Wykonaj następujące czynności:

Kutools dla programu Excel - Doładuj program Excel za pomocą ponad 300 niezbędnych narzędzi. Ciesz się w pełni funkcjonalnym 30-dniowym DARMOWYM okresem próbnym bez karty kredytowej! Zdobądź To Teraz

1. Wybierz zakres, z którego chcesz usunąć wiersze na podstawie określonej wartości, i kliknij Kutools > Select > Select Specific Cells. Zobacz zrzut ekranu:

2. W otwartym oknie dialogowym Wybierz określone komórki sprawdź Entire row opcję, wybierz Contains od Specific type rozwijaną listę, wprowadź określoną wartość w prawym polu i kliknij Ok przycisk (patrz powyższy zrzut ekranu).
Po zastosowaniu tej funkcji pojawi się okno dialogowe z informacją, ile komórek zostało znalezionych na podstawie określonych kryteriów. Proszę kliknąć OK przycisk, aby go zamknąć.

3. Teraz wybierane są całe wiersze z określoną wartością. Kliknij prawym przyciskiem myszy wybrane wiersze i kliknij Delete z menu po kliknięciu prawym przyciskiem myszy. Zobacz zrzut ekranu poniżej:

Note: Ten Select Specific Cells funkcja obsługuje usuwanie wierszy o jedną lub dwie określone wartości. Aby usunąć wiersze na podstawie dwóch określonych wartości, podaj inną wartość w Specific type sekcja okna dialogowego Wybierz określone komórki, jak pokazano na poniższym zrzucie ekranu:

Kutools dla programu Excel - Doładuj program Excel za pomocą ponad 300 niezbędnych narzędzi. Ciesz się w pełni funkcjonalnym 30-dniowym DARMOWYM okresem próbnym bez karty kredytowej! Zdobądź To Teraz


Usuń wiersze na podstawie wielu wartości komórek za pomocą Kutools for Excel

W niektórych przypadkach może być konieczne usunięcie wierszy opartych na wartościach wielu komórek z innej kolumny / listy w programie Excel. Tutaj przedstawię Kutools for Excel's Select Same & Different Cells funkcja umożliwiająca szybkie i łatwe rozwiązanie.

Kutools dla programu Excel - Doładuj program Excel za pomocą ponad 300 niezbędnych narzędzi. Ciesz się w pełni funkcjonalnym 30-dniowym DARMOWYM okresem próbnym bez karty kredytowej! Zdobądź To Teraz

1. Kliknij Kutools > Select > Select Same & Different Cells aby otworzyć okno dialogowe Wybieranie tych samych i różnych komórek.

2. W otwarciu Select Same & Different Cells w oknie dialogowym, wykonaj następujące czynności (patrz zrzut ekranu):

(1) W Find values in box, wybierz kolumnę, w której znajdziesz określone wartości;
(2) W According to wybierz kolumnę / listę z wieloma wartościami, na podstawie których usuniesz wiersze;
(3) W Based on Sekcja, sprawdź Each row opcja;
(4) W Find Sekcja, sprawdź Same Values opcja;
(5) Sprawdź Select entire rows opcja u dołu okna dialogowego otwierania.
Note: Jeśli dwie określone kolumny zawierają ten sam nagłówek, sprawdź My data has headers opcja.

3, Kliknij Ok przycisk, aby zastosować to narzędzie. Następnie pojawia się okno dialogowe i pokazuje, ile wierszy zostało wybranych. Po prostu kliknij OK przycisk, aby go zamknąć.

A następnie zostały wybrane wszystkie wiersze zawierające wartości z określonej listy.

4. Kliknij Home > Delete > Delete Sheet Rows aby usunąć wszystkie wybrane wiersze.


Demo: usuń wiersze na podstawie jednej lub wielu wartości komórek w programie Excel


Kutools dla programu Excel: Ponad 300 przydatnych narzędzi na wyciągnięcie ręki! Już dziś rozpocznij 30-dniowy bezpłatny okres próbny bez ograniczeń funkcji. Pobierz teraz!

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (39)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
In given range, if any cell contains defined text the entire row gets deleted.

Pls share code
This comment was minimized by the moderator on the site
Hi Yogesh,
On this webpage, the second method is to delete rows by cell values with VBA code. You can go to there and copy the code directly!
https://www.extendoffice.com/documents/excel/815-excel-remove-rows-based-on-cell-value.html#vba
This comment was minimized by the moderator on the site
There are two issues with the code posted as of this date. 1) the variable xTitleId is not declared, which causes a compilation error if Option Explicit is in use. 2) With Excel 2016, it appears that a range is limited to 129 areas. Each discontiguous matching cell found in the loop creates another area in the DeleteRng variable. Unfortunately, the Union method does not raise an error if that number of areas is exceeded; it just ignores the remaining cells. When the loop is finished, DeleteRng will have no more than 129 areas.
This comment was minimized by the moderator on the site
Hi TomTheToolman,
Thank you so much for your feedback. I've already updated the new code in the article. If you have any other questions, please don't hesitate to let me know.
Amanda
This comment was minimized by the moderator on the site
very well. Thank you!
This comment was minimized by the moderator on the site
Can someone help me...If 3rd column has value 0, then delete all values of corresponding column 1st. In this case answer should be the last line only.... Check MenuName ID 3149 VNLA MILFLLE 2 3149 TURKEY PNN 0 3149 R. BEEF PNN 0 3149 MIX MOCHA 38 3150 M.G.R 1/2 0 3150 THE PEPPE L 0 3150 MIX SLD 0 3150 EGGPLANT 0 3150 STILL WATER 7 3151 MIX MOCHA 38
This comment was minimized by the moderator on the site
Thanks for sharing. I am actually looking for a code that doesn't ask user for range but instead selects a specific column say column "A" and runs till the last row of that column. Can you please help..
This comment was minimized by the moderator on the site
Hi everybody, I am wondering what can we do to delete the following (According to the example shown in this page): Soe appears at several date (sept, October... etc). What I would like is to delete the line where Soe is but to keep the line with last date she appeared. In addition, some lines could be in double but I still want to keep it. So for example, you have the lines: - July 3 /Soe - Sep 4 / Soe - Sep 4 / Soe - Oct 19/ Soe - Nov 13 / Soe - Nov 13 / Soe and what I want to keep is: - Nov 13 / Soe - Nov 13 / Soe My real case is: I have different EAN code and version 1, 2, 3 or 4 and I want to keep the line where the version is the higher. e.g.: I have: - EAN 1 / Version 1 - EAN 1 / Version 1 - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 and I want to keep: - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 I am searching since hours and I am completely blocked on this issue. Many thanks in advance for your brain and help. Best, Marion
This comment was minimized by the moderator on the site
Hi, Thank you this was really helpful. However, there's an error that pops up when I run the codes it says "Object variable or with block variable not set" and it points to " the line DeleteRNG.EntireRow.Delete". Could you please help me with debugging this. Thanks.
This comment was minimized by the moderator on the site
I am trying to use this macro in order to delete unused formulas, because excel views blank formula cells as a zero value and will print extra pages. I was hoping when I deleted the unused formulas, when I printed it would only print the pages that had information. This is not the case and I really need help to find a solution. I have tried using this formula and it is not working and prints three extra pages that I do not need even with the extra formulas being deleted. Sub selectonly() ' ' selectonly Macro ' Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" End Sub
This comment was minimized by the moderator on the site
thank you so much. That save me a lot of time
This comment was minimized by the moderator on the site
Trying to find a delete Function that will delete entire designated rows automatically, based on certain values or certain text contained in other cell(s), using only automated formulas.
This comment was minimized by the moderator on the site
How can i delete selected cell that i want based on value that i entered for example : A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 When i entered in some cell for example "2" then 2 row will be deleted from A3:D4. If i entered "1" then 1 row will be deleted from A4:D4. if i entered "3" then 3 row will be deleted from A2:D4
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations