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

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 - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! 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 - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! 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 - Innehåller mer än 300 praktiska verktyg för Excel. Fullständig gratis provperiod 30-dag, inget kreditkort krävs! 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 innehåller mer än 300 praktiska verktyg för Excel, gratis att prova utan begränsning på 30 dagar. Ladda ner och gratis testversion nu!

De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
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!
officetab botten
Sortera kommentarer efter
Kommentarer (39)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Fantastisk! Det fungerade en godbit, jag ändrade det något för att passa det jag behövde men rent genialiskt. Åh VBA-version.
Denna kommentar minimerades av moderatoren på webbplatsen
Något sätt att ändra If (cell.Value) = "Apple" för att inkludera flera värden?
Denna kommentar minimerades av moderatoren på webbplatsen
Bobby, prova det här, det borde få vad du vill ha: If (cell.Value) = "Apple" OR (cell.Value) = "Monday"
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det på något sätt att få värdet att känna igen ett värde om det är > eller = till ett visst värde?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej - tack så mycket för manuset. Jag undrar om du kan använda jokertecken så att du kan välja vad som helst i en cell som matchar istället för ett specifikt objekt? Jag har försökt använda jokertecken ** men det verkar inte göra något. Här är vad jag har: Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange) För varje 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 Next cell On Error Resume Next del.EntireRow.Delete End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hjärtligt tack - det är alltid roligt när marknadsföringskillen försöker skriva kod, och den här informationen var super hjälpsam. Jag kunde inte få koden att sträcka sig över flera kolumner ("AA2:AA3000" fungerar, "AB2:AB3000" fungerar, men "AA2:AB3000" fungerar inte. Det finns ingen jordkrossande Kaboom - den gör bara ingenting. Jag Jag har löst det (amatörmässigt, antar jag) genom att köra flera makron i följd, men det finns förmodligen ett mer elegant sätt. Tack igen för din hjälp, Jim (Melville, NY)
Denna kommentar minimerades av moderatoren på webbplatsen
Jag får: runtime error '13': Typ mismatch Felsökning markerar avsnittet If (cell.Value) = "FALSE" _ Then. Jag är helt vilsen i MVB, all hjälp skulle uppskattas.
Denna kommentar minimerades av moderatoren på webbplatsen
Låt oss säga att jag lägger in koden nedan för att ta bort alla mina rader som innehåller äpple men sedan vill jag att det ska fortsätta när det är gjort och ta bort alla rader som innehåller banan? Jag försökte bara duplicera koden men det verkar sluta efter apple. tack. Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) För varje 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 Next cell On Error Resume Next del.EntireRow.Delete End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Jag ville bara säga tack. Detta fungerade som en charm.
Denna kommentar minimerades av moderatoren på webbplatsen
Helt klart häftigt! Uppskattar för att du delar med dig!!!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, det här är jättebra! Snabbkommentar, jag försökte hitta och ersätta funktionen i excel 2010. För att välja alla hittade resultat var jag tvungen att använda Ctrl +A istället för Alt + A.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Vad är det enklaste sättet att ta bort rader som INTE innehåller "Apple" tack? Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Något sätt att skriva det för att ta bort en rad, med ett ELLER-undantag? Dvs- ta bort rader som är dubbletter, men ignorera ett visst värde. Jag vill ta bort dubbletter, förutom där kolumnen i fråga innehåller en tom b/c att kolumnen inte har giltiga data ännu. Jag körde som du har, men jag avslutade raderingen av rader med en blank i kolumnen i fråga, så jag kan inte använda den som den är. Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för VB-skriptet. Jag kan inte vänta med att prova detta. Fråga: Kan man markera kolumnerna för radering innan man tar bort dem och/eller kopiera till en separat flik i arbetsboken? Finns det dessutom ett sätt att köra det här skriptet på flera arbetsböcker/filer samtidigt?
Denna kommentar minimerades av moderatoren på webbplatsen
tack.. det hjälper mig mycket...
Denna kommentar minimerades av moderatoren på webbplatsen
Jag skulle vilja ta bort alla rader där kolumn1 = "Apple" OCH kolumn3 = "grön". snälla du?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag är inte säker på hur man gör detta med hjälp av makron eller så, men ett alternativ som skulle göra sitt jobb bra är att lägga till en extra kolumn som testar att den ena kolumnen är "äpple" och den andra för att vara "grön" och sedan låta det ger ett enkelt "ja" eller "nej" värde. använd någon av alternativen ovan för att söka efter värdet "ja" och ta bort rader baserat på det istället för två separata värden.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har en lista över butiker i ett dokument. Jag har en rapport som returnerar tusentals rader. butiksnumret finns alltid i kolumn A. Finns det en kod/makro som ska söka i rapporten och ta bort alla kolumner med butiksnummer från butikslistan. tänker att en vlookup och "Do While" behövs.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej och tack så mycket för VBA-koden. Jag har en fråga. Är det möjligt att göra koden så att det går att välja flera cellvärden att radera samtidigt? Välj till exempel Apple och Emily samtidigt och radera dem? Jag uppskattar ditt arbete och ser fram emot ditt svar. Joan K
Denna kommentar minimerades av moderatoren på webbplatsen
Hur kan jag specificera intervallet A3:D3000 (dvs. jag vill inte att användaren ska välja intervallet)? Hur kan jag göra raderingssträngen till en cellreferens, t.ex. G1?
Denna kommentar minimerades av moderatoren på webbplatsen
är det möjligt att jämföra två kolumner och sedan radera? är i intervallet A3:D3000 om cell A=x och cell B=y radera rad?
Denna kommentar minimerades av moderatoren på webbplatsen
Vilken bra. tack så mycket alla. :)
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL