Denna handledning visar olika sätt att radera rader och kolumner i Excel med VBA.
Ta bort hela raden eller kolumnen
För att radera en hel rad i VBA, använd denna kodrad:
1 | Rad (1). Radera |
Lägg märke till att vi använder Radera metod för att radera en rad.
Istället för att referera till Rader Objekt, kan du referera rader baserat på deras Områdeobjekt med Hela raden:
1 | Område ("a1"). EntireRow.Delete |
På samma sätt för att radera en hel kolumn, använd dessa kodrader:
1 | Kolumner (1). Radera |
1 | Område ("a1"). EntireColumn.Delete |
Ta bort flera rader eller kolumner
Med samma logik kan du också radera flera rader samtidigt:
1 | Rad ("1: 3"). Radera |
eller kolumner:
1 | Kolumner ("A: C"). Radera |
Lägg märke till att här refererar vi till de specifika raden och kolumnnumren / bokstäverna omgivna av citat.
Naturligtvis kan du också referera till EntireRow i ett intervall:
1 | Område ("a1: a10"). EntireRow.Delete |
Obs! Exemplen nedan visar bara att rader tas bort, men som du kan se ovan är syntaxen praktiskt taget identisk för att radera kolumner.
Ta bort tomma / tomma rader
I det här exemplet raderas en rad om hela raden är tom:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Dim cell As RangeFör varje cell i intervallet ("b2: b20")Om Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Dåcell.EntireRow.DeleteAvsluta omNästa cellAvsluta Sub |
Den använder Excel -kalkylbladets funktion: COUNTA.
Ta bort rad om cellen är tom
Detta kommer att radera en rad om specifik kolumn i den raden är tom (i detta fall kolumn B):
1 | Område ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Radera rad baserat på cellvärde
Detta kommer att gå igenom ett intervall och radera rader om ett visst cellvärde i den raden säger "ta bort".
1234567891011 | Sub DeleteRowswithSpecificValue ()Dim cell As RangeFör varje cell i intervallet ("b2: b20")Om cell.Value = "delete" Dåcell.EntireRow.DeleteAvsluta omNästa cellAvsluta Sub |
Fler Radera rad- och kolumnexempel
Ta bort dubblerade rader
Den här koden raderar alla dubblerade rader i ett område:
1 | Område ("b2: c100"). RemoveDuplicates -kolumner: = 2 |
Lägg märke till att vi ställer in kolumner: = 2. Detta uppmanar VBA att kontrollera båda de två första kolumnerna med data när man överväger om rader är dubbletter. En kopia hittas bara när båda kolumnerna har dubblettvärden.
Om vi hade ställt in detta till 1 hade bara den första raden kontrollerats för dubblettvärden.
Ta bort tabellrader
Denna kod kommer att ta bort den andra raden i en tabell genom att referera till ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Ta bort filtrerade rader
Så här tar du bara bort rader som är synliga efter filtrering:
1 | Område ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Ta bort rader i intervallet
Denna kod raderar alla rader inom intervallet:
1 | Område ("a1: a10"). EntireRow.Delete |
Ta bort valda rader
Denna kod raderar alla valda rader:
1 | Selection.EntireRow.Delete |
Ta bort sista raden
Detta raderar den senast använda raden i kolumn B:
1 | Celler (rader.räkning, 2) .Slut (xlUp) .EntireRow.Delete |
Genom att ändra 2 till 1 kan du radera den senast använda raden i kolumn A, etc.:
1 | Celler (rader.räkning, 1) .Slut (xlUp) .EntireRow.Delete |
Ta bort kolumner efter nummer
För att radera en kolumn med dess nummer, använd en kod så här:
1 | Kolumner (2). Radera |