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

Jak odstranit řádky na základě hodnoty buňky v aplikaci Excel?

Chcete-li rychle odstranit nebo odebrat více řádků na základě hodnoty buňky v aplikaci Excel, možná budete muset nejprve vybrat ty celé řádky obsahující konkrétní hodnotu buňky a poté je odebrat. Zdá se, že neexistuje rychlý způsob, jak odstranit řádky na základě hodnoty buňky, ale pomocí kódu VBA. Zde je několik rychlých triků, které vám pomohou.


Odeberte řádky na základě hodnoty buňky pomocí funkce Najít a nahradit

V aplikaci Excel můžete použít výkonnou funkci Najít a nahradit a snadno odstranit řádky založené na určité hodnotě buňky. Postupujte prosím následovně:

1. Vyberte rozsah, ve kterém odeberete řádky na základě určité hodnoty buňky, a otevřete dialogové okno Najít a nahradit stisknutím klávesy Ctrl + F současně.

2. V dialogovém okně Najít a nahradit zadejte určitou hodnotu buňky (v našem případě zadáme Soe) do Find what a klepněte na tlačítko Find All knoflík. Viz první snímek obrazovky níže:

3. Vyberte všechny výsledky hledání v dolní části dialogového okna Najít a nahradit a zavřete toto dialogové okno. (Poznámka: Můžete vybrat jeden z výsledků vyhledávání a poté Ctrl + A klávesy pro výběr všech nalezených výsledků. Viz druhý snímek obrazovky výše.)
A pak můžete vidět, že jsou vybrány všechny buňky obsahující určitou hodnotu.

4. Pokračujte klepnutím pravým tlačítkem na vybrané buňky a vyberte Delete z nabídky pravého tlačítka myši. A pak zkontrolujte Entire row v rozbalovacím dialogovém okně Odstranit a klepněte na OK knoflík. Nyní uvidíte, že jsou odstraněny všechny buňky obsahující určitou hodnotu. Viz screenshoty níže:

A poté byly na základě určité hodnoty odstraněny celé řádky.


Odeberte řádky na základě hodnoty buňky pomocí kódu VBA

S následujícím kódem VBA můžete rychle odstranit řádky s určitou hodnotou buňky, proveďte následující kroky:

1. zmáčkni Alt + F11 současně otevřete Microsoft Visual Basic for applications okno,

2, klikněte Insert > Modulea do modulu zadejte následující kód:

VBA: Odeberte celé řádky na základě hodnoty buňky

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. Poté klikněte na tlačítko Run tlačítko pro spuštění kódu.

4. V rozbalovacím dialogovém okně vyberte rozsah, ve kterém odeberete řádky na základě určité hodnoty, a klikněte na OK .

5. V jiném dialogovém okně zadejte určitou hodnotu, podle které odeberete řádky, a kliknete na OK knoflík. Viz screenshot:

A pak uvidíte, že celé řádky již byly odstraněny na základě zadané hodnoty.


Odeberte řádky založené na hodnotách jedné nebo dvou buněk pomocí Kutools pro Excel

Pokud jste nainstalovali Kutools for Excel, to je Select Specific Cells funkce vám pomůže rychle odstranit řádky se specifickou hodnotou. Postupujte prosím následovně:

Kutools pro Excel - Zahrnuje více než

300
užitečné nástroje pro Excel. Plná zkušební verze zdarma
30
-den, není potřeba kreditní karta! Get It Now

1. Vyberte rozsah, který odeberete na základě určité hodnoty, a klikněte Kutools > Select > Select Specific Cells. Viz snímek obrazovky:

2. V úvodním dialogovém okně Vybrat určené buňky zkontrolujte Entire row vyberte možnost Contains od Specific type rozevírací seznam, zadejte zadanou hodnotu do pravého pole a klepněte na Ok tlačítko (viz výše uvedený snímek obrazovky).
Po použití této funkce se zobrazí dialogové okno, které vám ukáže, kolik buněk bylo nalezeno na základě zadaných kritérií. Klikněte prosím na OK pro jeho zavření.

3. Nyní jsou vybrány celé řádky s určitou hodnotou. Klikněte prosím pravým tlačítkem na vybrané řádky a klikněte na Delete z nabídky pravého tlačítka myši. Viz snímek obrazovky níže:

Poznámka: Tento Select Specific Cells funkce podporuje mazání řádků o jednu nebo dvě určité hodnoty. Chcete-li odstranit řádky založené na dvou zadaných hodnotách, uveďte prosím jinou hodnotu v Specific type v části Vybrat konkrétní buňky dialogové okno, jak ukazuje následující snímek obrazovky:

Kutools pro Excel - Zahrnuje více než

300
užitečné nástroje pro Excel. Plná zkušební verze zdarma
30
-den, není potřeba kreditní karta! Get It Now


Odeberte řádky na základě více hodnot buněk pomocí Kutools pro Excel

V některých případech možná budete muset odstranit řádky založené na více hodnotách buněk z jiného sloupce / seznamu v aplikaci Excel. Zde představím Kutools for Excel's Select Same & Different Cells funkce, která to snadno a rychle vyřeší.

Kutools pro Excel - Zahrnuje více než

300
užitečné nástroje pro Excel. Plná zkušební verze zdarma
30
-den, není potřeba kreditní karta! Get It Now

1, klikněte Kutools > Select > Select Same & Different Cells otevřete dialogové okno Vybrat stejné a různé buňky.

2. V otvoru Select Same & Different Cells dialogové okno, postupujte následovně (viz screenshot):

(1) V Find values in do pole vyberte sloupec, kde najdete určité hodnoty;
(2) V According to pole, vyberte prosím sloupec / seznam s více hodnotami, podle kterých odstraníte řádky;
(3) V Based on sekce, prosím zkontrolujte Each row volba;
(4) V Find sekce, prosím zkontrolujte Same Values volba;
(5) Zkontrolujte Select entire rows ve spodní části úvodního dialogového okna.
Poznámka: Pokud dva zadané sloupce obsahují stejné záhlaví, zkontrolujte My data has headers volba.

3, Klepněte na tlačítko Ok tlačítko pro použití tohoto nástroje. A pak vyjde dialogové okno a ukazuje, kolik řádků bylo vybráno. Stačí kliknout na OK pro jeho zavření.

A poté byly vybrány všechny řádky obsahující hodnoty mezi zadaným seznamem.

4, klikněte Home > Delete > Delete Sheet Rows odstranit všechny vybrané řádky.


Ukázka: Odeberte řádky na základě jedné nebo více hodnot buněk v aplikaci Excel


Kutools pro Excel obsahuje více než 300 šikovných nástrojů pro Excel, které si můžete zdarma vyzkoušet bez omezení za 30 dní. Stáhněte si a vyzkoušejte zdarma hned!

Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (39)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Fantastický! To fungovalo jako lahůdka, trochu jsem to upravil, aby vyhovovalo tomu, co jsem potřeboval, ale byl to čistý génius. Oh verze VBA.
Tento komentář byl moderátorem webu minimalizován
Nějaký způsob, jak upravit If (cell.Value) = "Apple" tak, aby zahrnoval více hodnot?
Tento komentář byl moderátorem webu minimalizován
Bobby, zkus toto, mělo by to dostat, co chceš: If (cell.Value) = "Apple" NEBO (cell.Value) = "Monday"
Tento komentář byl moderátorem webu minimalizován
Existuje vůbec, aby hodnota rozpoznala hodnotu, ať už je > nebo = na určitou hodnotu?
Tento komentář byl moderátorem webu minimalizován
Ahoj - díky moc za scénář. Zajímalo by mě, jestli můžete použít zástupné znaky, abyste mohli v buňce vybrat cokoli, co odpovídá spíše než konkrétní položce? Zkoušel jsem použít zástupné znaky **, ale zdá se, že to nic nedělá. Zde je to, co mám: 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 If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Další buňka On Error Resume Next del.EntireRow.Delete End Sub
Tento komentář byl moderátorem webu minimalizován
Upřímné díky – vždy je zábavné, když se člověk z marketingu snaží napsat kód, a tato informace byla velmi užitečná. Nepodařilo se mi přimět kód, aby pokrýval více sloupců („AA2:AA3000“ funguje, „AB2:AB3000“ funguje, ale „AA2:AB3000“ nefunguje. Neexistuje žádný Kaboom, který by rozbil Zemi – prostě nic nedělá. I Vyřešil jsem to (předpokládám amatérsky) spuštěním několika maker za sebou, ale pravděpodobně existuje elegantnější způsob. Ještě jednou díky za pomoc, Jim (Melville, NY)
Tento komentář byl moderátorem webu minimalizován
Zobrazuje se: chyba běhu '13': Neshoda typu Ladění zvýrazní sekci If (cell.Value) = "FALSE" _ Then. V MVB jsem úplně ztracený, ocenil bych jakoukoli pomoc.
Tento komentář byl moderátorem webu minimalizován
Řekněme, že jsem vložil níže uvedený kód, abych odstranil všechny své řádky, které obsahují jablko, ale poté chci, aby to pokračovalo, jakmile to bude hotové, a smazal všechny řádky, které obsahují banán? Zkoušel jsem jen duplikovat kód, ale zdá se, že se zastaví po apple. dík. Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) For Every cell In rng If (cell.Value) = "Apple" _ Then If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Další buňka On Error Resume Next del.EntireRow.Delete End Sub
Tento komentář byl moderátorem webu minimalizován
Jen jsem chtěl poděkovat. Tohle fungovalo jako kouzlo.
Tento komentář byl moderátorem webu minimalizován
Rozhodně úžasné! Děkujeme za sdílení!!!
Tento komentář byl moderátorem webu minimalizován
Díky, to je skvělé! Rychlý komentář, zkusil jsem funkci najít a nahradit v excelu 2010. Abych vybral všechny nalezené výsledky, musel jsem místo Alt + A použít Ctrl + A.
Tento komentář byl moderátorem webu minimalizován
Ahoj, jak nejsnadněji smazat řádky, které NEobsahují "Apple"? dík
Tento komentář byl moderátorem webu minimalizován
Ahoj, nějaký způsob, jak to napsat, aby se smazal řádek, s výjimkou OR? Tj. odstranit řádky, které jsou duplicitní, ale ignorovat určitou hodnotu. Chci odstranit duplikáty, s výjimkou případů, kdy dotyčný sloupec obsahuje prázdné b/c, že ​​sloupec ještě nemá platná data. Běžel jsem jako vy, ale ukončil jsem mazání řádků s mezerou v příslušném sloupci, takže jej nemohu použít tak, jak je. dík
Tento komentář byl moderátorem webu minimalizován
Děkuji za VB skript. Nemůžu se dočkat, až to vyzkouším. Otázka: Je vůbec možné označit sloupce k odstranění před jejich odstraněním a/nebo zkopírovat na samostatnou kartu v sešitu? Kromě toho existuje způsob, jak spustit tento skript na více sešitech/souborech najednou?
Tento komentář byl moderátorem webu minimalizován
děkuji.. moc mi to pomáhá...
Tento komentář byl moderátorem webu minimalizován
Chtěl bych smazat všechny řádky, kde sloupec1 = "Apple" A sloupec3 = "zelený". prosím?
Tento komentář byl moderátorem webu minimalizován
Nejsem si jistý, jak to udělat pomocí makra nebo tak, ale jednou z možností, která by svou práci udělala dobře, je přidat další sloupec, který testuje, zda je jeden sloupec „jablko“ a druhý „zelený“, a pak nechat dává jednoduchou hodnotu „ano“ nebo „ne“. než použít některou z výše uvedených možností k vyhledání hodnoty "ano" a odstranění řádků na základě této hodnoty namísto 2 samostatných hodnot.
Tento komentář byl moderátorem webu minimalizován
mám seznam prodejen v jednom dokumentu. Mám zprávu, která vrací tisíce řádků. číslo obchodu je vždy ve sloupci A. Existuje kód/makro, které prohledá sestavu a odstraní všechny sloupce s čísly obchodů ze seznamu obchodů? je potřeba vlookup a "Do Zatímco".
Tento komentář byl moderátorem webu minimalizován
Dobrý den a mnohokrát děkuji za kód VBA. Mám jednu otázku. Je možné udělat kód tak, že je možné vybrat několik hodnot buněk, které se mají smazat současně? Například vybrat Apple a Emily současně a smazat je? Vážím si vaší práce a těším se na vaši odpověď. Joan K
Tento komentář byl moderátorem webu minimalizován
Jak mohu zadat rozsah A3:D3000 (tj. nechci, aby rozsah vybíral uživatel)? Jak mohu udělat z Delete String odkaz na buňku, např. G1?
Tento komentář byl moderátorem webu minimalizován
je možné porovnat dva sloupce a poté smazat? je v rozsahu A3:D3000, pokud buňka A=x a buňka B=y, pak smazat řádek?
Tento komentář byl moderátorem webu minimalizován
To je skvělé. všem moc děkuji. :)
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL