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

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. (Uwagi: 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 - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatnej wersji próbnej 30-dzień, karta kredytowa nie jest wymagana! 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:

Uwagi: 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 - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatnej wersji próbnej 30-dzień, karta kredytowa nie jest wymagana! 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 - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatnej wersji próbnej 30-dzień, karta kredytowa nie jest wymagana! 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.
Uwagi: 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 zawiera ponad 300 przydatnych narzędzi dla programu Excel, które można bezpłatnie wypróbować bez ograniczeń przez 30 dni. Pobierz i bezpłatną wersję próbną teraz!

Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

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!
officetab dół
Sortuj komentarze według
Komentarze (39)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Fantastyczny! To zadziałało, trochę to zmieniłem, żeby pasowało do tego, czego potrzebowałem, ale czysto genialne. Och wersja VBA.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jakiś sposób na zmodyfikowanie If (cell.Value) = "Apple", aby zawierał wiele wartości?
Ten komentarz został zminimalizowany przez moderatora na stronie
Bobby, spróbuj tego, powinno uzyskać to, czego chcesz: If (cell.Value) = "Apple" OR (cell.Value) = "Poniedziałek"
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy mimo to wartość musi rozpoznawać wartość, niezależnie od tego, czy jest > lub = do określonej wartości?
Ten komentarz został zminimalizowany przez moderatora na stronie
Hej - bardzo dziękuję za scenariusz. Zastanawiałem się, czy możesz użyć symboli wieloznacznych, aby wybrać coś w komórce, która pasuje, a nie konkretny element? Próbowałem użyć ** symboli wieloznacznych, ale wydaje się, że nic to nie robi. Oto, co mam: Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange) For Each cell In rng If cell.Value Like "*WORDTODELETE*" _ Then Jeśli del jest niczym Then Set del = komórka Else: Set del = Union(del, komórka) End If End If Następna komórka On Error Wznów Następne del.EntireRow.Delete End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Serdeczne podziękowania - zawsze zabawne jest, gdy facet od marketingu próbuje napisać kod, a ta informacja była bardzo pomocna. Nie udało mi się uzyskać kodu obejmującego wiele kolumn ("AA2:AA3000" działa, "AB2:AB3000" działa, ale "AA2:AB3000" nie działa. Nie ma wstrząsającego Kaboomu - po prostu nic nie robi. rozwiązałem to (przypuszczam, że amatorsko), uruchamiając kilka makr po kolei, ale prawdopodobnie istnieje bardziej elegancki sposób. Jeszcze raz dziękuję za pomoc, Jim (Melville, NY)
Ten komentarz został zminimalizowany przez moderatora na stronie
Otrzymuję: błąd w czasie wykonywania '13': Niezgodność typu Debugowanie podświetla sekcję If (cell.Value) = "FALSE" _ Then. Jestem całkowicie zagubiony w MVB, każda pomoc byłaby mile widziana.
Ten komentarz został zminimalizowany przez moderatora na stronie
Powiedzmy, że umieściłem poniższy kod, aby usunąć wszystkie moje wiersze zawierające jabłko, ale potem chcę, aby był kontynuowany, gdy to się skończy i usunąć wszystkie wiersze zawierające banana? Próbowałem po prostu zduplikować kod, ale wydaje się, że zatrzymuje się po jabłku. dzięki. Sub Delete_Rows() Dim rng As Range, komórka As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) For Każda komórka In rng If (cell.Value) = "Apple" _ Then If del to nic Then Set del = cell Else: Set del = Union(del, cell) End If End If Następna komórka On Error Resume Next del.EntireRow.Delete End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Chciałem tylko powiedzieć dziękuję. To zadziałało jak urok.
Ten komentarz został zminimalizowany przez moderatora na stronie
Zdecydowanie super! Dziękujemy za udostępnienie!!!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki, to świetnie! Szybki komentarz, wypróbowałem funkcję znajdź i zamień w programie Excel 2010. Aby wybrać wszystkie znalezione wyniki, musiałem użyć Ctrl + A zamiast Alt + A.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Jaki jest najłatwiejszy sposób na usunięcie wierszy, które NIE zawierają słowa „Apple”? Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Czy jest jakiś sposób na napisanie go, aby usunąć wiersz, z wyjątkiem OR? Tj - usuń wiersze, które są duplikatami, ale zignoruj ​​pewną wartość. Chcę usunąć duplikaty, z wyjątkiem sytuacji, gdy dana kolumna zawiera puste b/c, że kolumna nie ma jeszcze prawidłowych danych. Pobiegłem tak, jak Ty, ale zakończyłem usuwanie wierszy z pustym miejscem w danej kolumnie, więc nie mogę go użyć tak, jak jest. Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję za skrypt VB. Nie mogę się doczekać, aby tego spróbować. Pytanie: Czy mimo to można oznaczyć kolumny do usunięcia przed ich usunięciem i/lub skopiowaniem do osobnej karty w skoroszycie? Ponadto, czy istnieje sposób na uruchomienie tego skryptu na wielu skoroszytach/plikach jednocześnie?
Ten komentarz został zminimalizowany przez moderatora na stronie
dziękuję... bardzo mi to pomaga...
Ten komentarz został zminimalizowany przez moderatora na stronie
Chciałbym usunąć wszystkie wiersze, w których kolumna1 = „Jabłko” ORAZ kolumna3 = „zielony”. Proszę?
Ten komentarz został zminimalizowany przez moderatora na stronie
Nie jestem pewien, jak to zrobić za pomocą makra, ale jedną z opcji, która spełniłaby swoje zadanie, jest dodanie dodatkowej kolumny, która sprawdza, czy jedna kolumna jest „jabłkiem”, a druga „zielona”, a następnie daje prostą wartość „tak” lub „nie”. niż użyj jednej z powyższych opcji, aby wyszukać wartość „tak” i usunąć wiersze na jej podstawie zamiast 2 oddzielnych wartości.
Ten komentarz został zminimalizowany przez moderatora na stronie
mam listę sklepów w jednym dokumencie. Mam raport, który zwraca tysiące wierszy. numer sklepu jest zawsze w kolumnie A. Czy istnieje kod/makro, które przeszuka raport i usunie wszystkie kolumny z numerami sklepów z listy sklepów. myślenie o podglądzie i „Do While” są potrzebne.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam i bardzo dziękuję za kod VBA. Mam jedno pytanie. Czy można zrobić kod w taki sposób, aby można było wybrać kilka wartości komórek do usunięcia w tym samym czasie? Na przykład wybrać jednocześnie Apple i Emily i usunąć je? Doceniam twoją pracę i czekam na twoją odpowiedź. Joanna K
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak określić zakres A3:D3000 (tzn. nie chcę, aby użytkownik wybierał zakres)? Jak mogę uczynić ciąg Delete jako odwołanie do komórki, np. G1?
Ten komentarz został zminimalizowany przez moderatora na stronie
czy można porównać dwie kolumny, a następnie usunąć? jest w zakresie A3:D3000, jeśli komórka A=x i komórka B=y, a następnie usunąć wiersz?
Ten komentarz został zminimalizowany przez moderatora na stronie
Jaki wspaniały. dziękuję bardzo. :)
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL