Innehållsförteckning
Om du letar efter några av de enklaste sätten att radera rader med hjälp av VBA då är du på rätt plats.
Låt oss gå in på huvudartikeln.
Ladda ner arbetsboken
VBA Radera rad.xlsm14 sätt att ta bort en rad med VBA
Här har jag tre datatabeller för att visa hur man tar bort rader med hjälp av VBA Den första tabellen innehåller några Produkter av ett företag och deras Storlekar , Priser .
Den andra har en del Produktkoder och deras motsvarande Produktstorlekar och Priser
Och den sista innehåller några Projektnamn och deras respektive Startdatum och Kostnader .
För att skapa artikeln har jag använt mig av Microsoft Excel 365 versionen, men du kan använda andra versioner när det passar dig.
Metod-1: Ta bort en enda rad med VBA
Låt oss säga att du vill ta bort raden som innehåller Produkt Sko 1, och för att ta bort denna enda rad kan du följa den här metoden.
Step-01 :
➤Gå till Utvecklare Fliken>> Visual Basic Alternativ
Därefter är det Redigerare för Visual Basic kommer att öppnas.
➤Gå till Infoga Fliken>> Modul Alternativ
Efter detta kommer en Modul kommer att skapas.
Step-02 :
➤Skriv följande kod
Sub dltrow1() Arbetsblad("Single").Rows(7).EntireRow.Delete End Sub
Här, "Enkel" är arbetsbladets namn och Rader(7) väljer radnumret.
.EntireRow.Delete raderar hela raden 7.
➤Press F5
Resultat :
På detta sätt raderar du raden som innehåller Produkt namn Sko 1 .
Läs mer: Hur man tar bort rader i Excel: 7 metoder
Metod-2: Ta bort flera rader med hjälp av VBA
Om du vill radera flera rader, t.ex. de rader som innehåller Produkt namn Sko1 , Sko2, och Sko3 kan du följa detta VBA kod.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub
Här kommer radnumren 13, 10 och 7 att raderas och när du skriver radnumren i serie måste du skriva från det sista radnumret till det första radnumret på följande sätt.
Annars kommer de återstående raderna under denna rad att flyttas upp en rad efter att den första raden, t.ex. rad 7, har tagits bort, vilket innebär att rad 10 blir rad 9 och rad 13 blir rad 12. Av denna anledning kommer du inte att kunna ta bort de rätta raderna.
➤Press F5
Resultat :
Därefter raderar du de rader som innehåller Produkt namn Sko 1 , Sko2, och Sko3 .
Läs mer: Ta bort flera rader i Excel (3 metoder)
Metod-3: Ta bort en rad genom att välja
Här ska jag visa hur man raderar en rad i förhållande till en aktiv cell i raden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow3() ActiveCell.EntireRow.Delete End Sub
Den raderar raden med en aktiv cell.
➤Spara koden.
Step-02 :
➤Välj en cell i raden som du vill ta bort (här har jag valt cell B7 )
➤Gå till Utvecklare Fliken>> Makroer Alternativ
Efter det kan den Makro Guiden öppnas.
➤Välj den Makronamn dltrow3 och tryck på Kör
Resultat :
Därefter raderar du raden som innehåller Produkt namn Sko 1 .
Metod-4: Ta bort alla rader i urvalet
Om du vill ta bort alla rader i ett urval kan du följa den här metoden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow4() Selection.EntireRow.Delete End Sub
Det raderar alla rader i urvalet.
➤Spara koden.
Step-02 :
➤ Välj det intervall av rader som du vill ta bort (här har jag valt intervallet B7:D9 )
➤Gå till Utvecklare Fliken>> Makroer Alternativ
Efter detta kan Makro Guiden öppnas.
➤Välj den Makronamn dltrow4 och tryck på Kör
Resultat :
Därefter raderar du de rader som innehåller Produkt namn Sko 1 , Jacka1, och Jacka2 .
Läs mer: Hur man tar bort valda rader i Excel (8 metoder)
Metod-5: Ta bort en rad om någon cell är tom
Här har jag en tom cell som är B9 (jag har tagit bort värdet från denna cell för denna metod), och med hjälp av en VBA kod jag kommer att radera raden med B9 cell.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Det raderar alla rader i intervallet "B5:D13" som har en tom cell.
➤Press F5
Resultat :
Därefter kan du ta bort raden med den tomma cellen.
Läs mer: Hur man tar bort tomma rader i Excel (11 metoder)
Metod-6: Ta bort en rad om hela raden är tom
Här har jag en tom cell som är B9 (jag har tagit bort värdena för denna metod) och en tom rad som är rad 12 (jag har tagit bort värdena för denna metod), och med hjälp av en VBA kod och COUNTA-funktionen Jag raderar den tomma raden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub
"B5:D13" är dataområdet och FÖR slingan kommer att fungera för varje cell i detta intervall.
CountA(cell.EntireRow) returnerar antalet celler som inte är tomma och när det blir 0 raderas raden.
➤Press F5
Resultat :
Därefter kan du ta bort den tomma raden, men det kommer inte att ta bort någon rad som inte har alla celler i denna rad tomma.
Läs mer: Hur du använder VBA för att ta bort tomma rader i Excel
Metod-7: Ta bort varje n:e rad
Du kan radera var n:e rad (i det här fallet var tredje rad) genom att följa den här metoden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub
"B5:D13" är dataområdet och rc kommer att ge det totala antalet rader i detta intervall, vilket är 9 .
Här kan FÖR slingan startar från den sista raden som är rc eller . 9 i det här fallet och slutar med den första raden.
Steg -3 kommer att hjälpa till att radera alla 3:e rad inom detta område.
➤Press F5
Resultat :
Därefter raderar du de rader som innehåller Produkt namn Sko 1 , Sko2, och Sko3 .
Läs mer: Ta bort varje n:e rad i Excel (6 enklaste sätt)
Liknande läsningar:
- Ta bort markerade rader med Excel VBA (en stegvis vägledning)
- Ta bort oanvända rader i Excel (8 enkla sätt)
- Ta bort dolda rader i Excel (3 metoder)
- Ta bort oändliga rader i Excel (5 enkla sätt)
- Ta bort rader i Excel som fortsätter i all evighet (4 enkla sätt)
Metod-8: Ta bort rad baserat på cellvärde
I den här metoden raderar jag den rad som har ett visst värde. Skjorta 2 .
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub
"B5:D13" är dataområdet och FÖR slingan kommer att fungera för varje cell i intervallet.
Om någon cell i en rad innehåller värdet "Skjorta 2" tas raden bort.
➤Press F5
Resultat :
På detta sätt raderar du raden som innehåller Produkt namn Skjorta 2 .
Läs mer: VBA-makro för att ta bort raden om cellen innehåller ett värde i Excel (2 metoder)
Metod-9: Ta bort dubbla rader
Här har jag två rader med en Produktkod 97375 Jag vill ta bort en av dessa rader som är markerade med en röd ruta nedan.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub
Här, "B5:D13" är dataområdet och Kolumner:=1 innebär att den söker efter dubbla värden endast i en kolumn, nämligen startkolumnen. Kolumn B men om du vill söka i andra kolumner kan du använda detta nummer enligt dina behov.
➤Press F5
Resultat :
Därefter kan du ta bort den rad som liknar en annan rad.
Läs mer: Ta bort dubbla rader i Excel med VBA (8 effektiva sätt)
Metod-10: Ta bort rader i en tabell
Antag att du har följande tabell vars namn är Tabell1 och nu vill du ta bort rad nummer 6 i denna tabell. För att göra detta kan du följa den här metoden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub
Här, "Bord" är arkets namn, "Table1" är tabellens namn och 6 är radnumret i den tabell som du vill ta bort.
➤Press F5
Resultat :
På detta sätt raderar du den önskade raden i tabellen.
Läs mer: Ta bort dubbla rader baserat på en kolumn med Excel VBA
Metod-11: Ta bort synliga rader efter filtrering
Här har jag en datatabell som är filtrerad med hjälp av Pris kolumnen för värden som är större än $1,500.00 och jag vill ta bort alla synliga rader efter filtrering.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub
Här, "B5:D13" är dataområdet.
➤Press F5
Nu raderas alla synliga rader efter filtreringen. Du kan nu ta tillbaka de dolda raderna genom att välja Filter tecken i den Pris kolumn.
➤Klicka på Välj alla alternativ
➤Press OK
Resultat :
Slutligen får du tillbaka de dolda raderna i datatabellen.
Läs mer: Filtrera och ta bort rader med VBA i Excel (2 metoder)
Metod-12: Ta bort raden baserat på den sista aktiva cellen
Här är min sista aktiva cell cell B13 och jag vill ta bort den sista aktiva cellen i följande datatabell.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub
Här, 2 betyder Kolumn B där jag har min aktiva cell, du kan ändra numret efter dina behov.
➤Press F5
Resultat :
På detta sätt raderar du den sista aktiva raden.
Läs mer: Excel VBA-kod för att ta bort rader baserat på flera cellvärden (3 kriterier)
Metod-13: Ta bort rader som har strängar
Anta att du vill ta bort de rader som har en sträng, och för att göra detta kan du följa den här metoden.
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub
Här, "sträng" är arkets namn, den första raden i detta datarutbud är 5 och startkolonnnumret är 2
Med kan du ange ett objekt eller en användardefinierad typ en gång för en hel serie uttalanden.
Vid fel Fortsätt nästa anger att när ett körtidsfel inträffar, går kontrollen till det uttalande som följer efter det uttalande där felet inträffar.
LastRow och LastColumn återger den sista raden och kolumnen i dataområdet.
SpecialCells(xlCellTypeConstants, xlTextValues) väljer de rader som har textvärden i intervallet.
➤Press F5
Resultat :
Därefter raderas de rader som har en textsträng.
Läs mer: Excel-genväg för att ta bort rader (med bonusteknik)
Metod-14: Ta bort rader baserat på datum
Här raderar jag de rader som har ett speciellt datum. 11/12/2021 (mm/dd/åååå) i denna metod med hjälp av DATEVALUE-funktionen .
Step-01 :
➤Följ Step-01 på Metod-1
Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub
Här, "Datum" är arkets namn, den första raden i detta datarutbud är 5 och antalet kriterier i kolumnen (vilken kolumn som har datum) är 3 .
Med kan du ange ett objekt eller en användardefinierad typ en gång för en hel serie uttalanden.
Vid fel Fortsätt nästa anger att när ett körtidsfel inträffar, går kontrollen till det uttalande som följer efter det uttalande där felet inträffar.
LastRow returnerar den sista raden i datafältet och här är det FÖR slingan startar från den sista raden som är LastRow eller . 6 i det här fallet, och slutar med den första raden.
DATEVALUE omvandlar textdatum till ett värde.
Här, Unionen återger föreningen av flera intervall som motsvarar de celler som har datumet 11/12/2021 och slutligen raderas områdena.
➤Press F5
Resultat :
Därefter raderar du de rader som har ett visst datum för 11/12/2021 .
Relaterat innehåll: Excel VBA för att ta bort rader med specifika data (9 exempel)
Övningssektionen
För att du ska kunna öva på egen hand har vi tillhandahållit en Praktik som nedan i ett ark som heter Praktik . Gör det själv.
Slutsats
I den här artikeln har jag försökt att täcka de enklaste sätten att använda VBA effektivt för att ta bort rader. Hoppas att du tycker att det är användbart. Om du har några förslag eller frågor, dela dem gärna med dig i kommentarsfältet.