VBA Ta bort hela raden eller kolumnen – Automatisera ExcelAutomate Excel

Denna handledning kommer att visa olika sätt att ta bort rader och kolumner i Excel med hjälp av VBA.

Ta bort hela raden eller kolumnen

För att ta bort en hel rad i VBA använder du den här raden i koden:

Rows(1).Delete

Notera att vi använder Delete-metoden för att ta bort en rad.

Istället för att hänvisa till Rows-objektet kan du hänvisa till rader baserat på deras Range-objekt med EntireRow:

Range("a1").EntireRow.Delete

För att ta bort en hel kolumn använder du dessa kodrader:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Släpp flera rader eller kolumner

Med samma logik kan du också radera flera rader på en gång:

Rows("1:3").Delete

eller kolumner:

Columns("A:C").Delete

Observera att vi här hänvisar till specifika rader- och kolumnnummer/bokstäver som är omgärdade av citattecken.

Självklart kan du också referera till EntireRow i ett intervall:

Range("a1:a10").EntireRow.Delete

Observera: Exemplen nedan visar endast radering av rader, men som du kan se ovan är syntaxen praktiskt taget identisk för att radera kolumner.

Ta bort tomma rader

Detta exempel tar bort en rad om hela raden är tom:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Det använder sig av Excel-arbetsbladfunktionen: COUNTA.

Ta bort rad om cell är tom

Detta raderar en rad om en specifik kolumn i raden är tom (i det här fallet kolumn B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Ta bort rad baserat på cellvärde

Detta kommer att gå igenom ett intervall och radera rader om ett visst cellvärde i raden säger ”ta bort”.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Mer Delete Row and Column Examples

Delete Duplicate Rows

Den här koden raderar alla dubbla rader i ett intervall:

Range("b2:c100").RemoveDuplicates Columns:=2

Märk väl att vi har satt Columns:=2. Detta säger till VBA att kontrollera både de två första datakolumnerna när man överväger om rader är dubbletter. En dubblett hittas endast när båda kolumnerna har dubbla värden.

Om vi hade ställt in detta på 1 skulle endast den första raden ha kontrollerats för dubbla värden.

Ta bort tabellrader

Denna kod tar bort den andra raden i en tabell genom att hänvisa till ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Ta bort filtrerade rader

För att ta bort endast rader som är synliga efter filtrering:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Ta bort rader i intervallet

Denna kod tar bort alla rader i intervallet:

Range("a1:a10").EntireRow.Delete

Ta bort valda rader

Denna kod tar bort alla valda rader:

Selection.EntireRow.Delete

Ta bort sista raden

Detta tar bort den senast använda raden i kolumn B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Om du ändrar 2 till 1 kan du ta bort den senast använda raden i kolumn A, osv.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Släck kolumner efter nummer

För att radera en kolumn efter dess nummer använder du en kod som denna:

Columns (2).Delete

Lämna ett svar

Din e-postadress kommer inte publiceras.