Hoppa till huvudinnehåll

Hur tar jag bort rader baserat på cellvärde i Excel?

För att snabbt ta bort eller ta bort flera rader baserat på cellvärde i Excel kan du behöva markera de hela raderna som innehåller specifikt cellvärde och sedan ta bort dem. Det verkar som om det inte finns ett snabbt sätt att radera rader baserat på cellvärde utan att använda VBA-kod. Här är några snabba knep för att hjälpa dig.


Ta bort rader baserat på cellvärde med funktionen Sök och ersätt

I Excel kan du använda den kraftfulla Sök och ersätt-funktionen för att enkelt ta bort rader baserat på ett visst cellvärde. Gör så här:

1. Välj det område där du vill ta bort rader baserat på ett visst cellvärde och öppna dialogrutan Sök och ersätt genom att trycka på Ctrl + F tangenter samtidigt.

2. I dialogrutan Sök och ersätt, skriv ett visst cellvärde (i vårt fall anger vi varm) in i Find what rutan och klicka på Find All knapp. Se den första skärmdumpen nedan:

3. Markera alla sökresultat längst ner i dialogrutan Sök och ersätt och stäng den här dialogrutan. (Anmärkningar: Du kan välja ett av sökresultaten och sedan Ctrl + A för att välja alla hittade resultat. Se den andra skärmdumpen ovan.)
Och då kan du se att alla celler som innehåller det specifika värdet är valda.

4. Fortsätt till högerklicka på markerade celler och välj Delete från högerklickmenyn. Och kolla sedan Entire row alternativet i dialogrutan Ta bort radera och klicka på OK knapp. Nu ser du att alla celler som innehåller det specifika värdet tas bort. Se skärmdumpar nedan:

Och sedan har hela rader raderats baserat på det vissa värdet redan.


Ta bort rader baserat på cellvärde med VBA-kod

Med följande VBA-kod kan du snabbt radera raderna med visst cellvärde, gör följande steg:

1. tryck på Alt + F11 samtidigt för att öppna Microsoft Visual Basic for applications fönster,

2. Klicka Insert > Moduleoch mata in följande kod i modulen:

VBA: Ta bort hela rader baserat på cellvärde

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. Klicka sedan på Run för att köra koden.

4. I popup-dialogrutan, välj det intervall där du kommer att ta bort rader baserat på det specifika värdet och klicka på OK knapp.

5. I en annan dialogruta, skriv det specifika värdet du tar bort rader baserat på och klicka på OK knapp. Se skärmdump:

Och då ser du att hela rader har raderats baserat på det angivna värdet redan.


Ta bort rader baserat på en eller två cellvärden med Kutools för Excel

Om du har installerat Kutools for Excel, dess Select Specific Cells funktionen kan hjälpa dig att snabbt radera raderna med specifikt värde. Gör så här:

Kutools för Excel - Superladda Excel med över 300 viktiga verktyg. Njut av en fullfjädrad 30-dagars GRATIS provperiod utan behov av kreditkort! Hämta den nu

1. Välj det intervall som du vill ta bort rader baserat på ett visst värde och klicka på Kutools > Select > Select Specific Cells. Se skärmdump:

2. I dialogrutan Välj specificerade celler, kontrollera Entire row alternativ, välj Contains från Specific type rullgardinsmeny, ange det angivna värdet i höger ruta och klicka på Ok -knappen (se skärmdump ovan).
Efter att ha använt den här funktionen kommer en dialogruta att dyka upp och visa dig hur många celler som har hittats baserat på de angivna kriterierna. Klicka på OK knappen för att stänga den.

3. Nu väljs hela rader med ett visst värde. Högerklicka på de markerade raderna och klicka på Delete från högerklickmenyn. Se skärmdump nedan:

Anmärkningar: Detta Select Specific Cells funktionen stöder att radera rader med ett eller två vissa värden. För att radera rader baserat på två angivna värden, ange ett annat värde i Specific type avsnittet Välj specifika celler dialogrutan som följande skärmdump visas:

Kutools för Excel - Superladda Excel med över 300 viktiga verktyg. Njut av en fullfjädrad 30-dagars GRATIS provperiod utan behov av kreditkort! Hämta den nu


Ta bort rader baserat på flera cellvärden med Kutools för Excel

I vissa fall kan du behöva ta bort rader baserat på flera cellvärden från en annan kolumn / lista i Excel. Här kommer jag att presentera Kutools for Excel's Select Same & Different Cells funktion för att lösa det snabbt med lätthet.

Kutools för Excel - Superladda Excel med över 300 viktiga verktyg. Njut av en fullfjädrad 30-dagars GRATIS provperiod utan behov av kreditkort! Hämta den nu

1. Klicka Kutools > Select > Select Same & Different Cells för att öppna dialogrutan Välj samma och olika celler.

2. I öppningen Select Same & Different Cells dialogrutan, gör så här (se skärmdump):

(1) I Find values in rutan, välj den kolumn där du hittar vissa värden;
(2) I According to välj kolumnen / listan med flera värden som du kommer att ta bort rader baserat på;
(3) I Based on avsnittet, kontrollera Each row alternativ;
(4) I Find avsnittet, kontrollera Same Values alternativ;
(5) Kontrollera Select entire rows alternativ längst ned i dialogrutan som öppnas.
Anmärkningar: Om två angivna kolumner innehåller samma rubrik, kontrollera My data has headers alternativ.

3. Klicka på Ok för att använda detta verktyg. Och sedan kommer en dialogruta ut och visar hur många rader som har valts. Klicka bara på OK knappen för att stänga den.

Och sedan har alla rader som innehåller värden i den angivna listan valts.

4. Klicka Home > Delete > Delete Sheet Rows för att radera alla valda rader.


Demo: ta bort rader baserat på ett eller flera cellvärden i Excel


Kutools för Excel: Över 300 praktiska verktyg till hands! Börja din 30-dagars gratis provperiod utan funktionsbegränsningar idag. Ladda ner nu!

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

kte-flik 201905


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
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