VBA Radera rad

Excel VBA Radera rad

Normalt i Excel-kalkylbladet har vi två olika metoder för att radera rader, en är kortkommandon och en annan genom att använda högerklicka och infoga metoden men i VBA måste vi använda delete-kommandot och kalkylbladet för att radera alla rader tillsammans, tricket att detta är att om vi behöver ta bort en enstaka rad ger vi en enstaka radreferens men för flera kolumner ger vi flera radreferenser.

Med hjälp av VBA Radera radmetod kan vi ta bort alla tomma rader, vi kan ta bort raden baserat på cellvärde, vi kan också ta bort hela raden om någon av cellerna är tomma.

I den här artikeln kommer vi att diskutera metoden "VBA Radera rad". Håll dig upptagen de närmaste 15 till 20 minuterna för att lära dig mer om konceptet.

Hur tar jag bort rad?

Du kan ladda ner denna Excel-mall för radera VBA här - VBA Radera rad för Excel-mall

Exempel nr 1

I VBA måste vi nämna raden vi tar bort.

Koda:

 Sub DeleteRow_Example1 () Celler (1, 1) Avsluta Sub 

Celler (1, 1) betyder första raden första kolumn, dvs A1-cell. Sedan använder vi metoden "radera".

Koda:

 Sub DeleteRow_Example1 () Celler (1, 1). Radera End Sub 

Nu tar den första cellen bort. Alla värden på höger sida flyttar en cell åt vänster.

Exempel 2

Om du vill ta bort hela raden måste vi använda egenskapen "EntireRow" måste vi använda metoden "ta bort" för att ta bort hela raden i cellen som vi har valt.

Koda:

Sub DeleteRow_Example2 () Celler (1, 1) .EntireRow. Ta bort slut sub

Till exempel har jag angett några tecken i ett Excel-ark enligt följande.

Om jag nu kör den här koden kommer hela raden att tas bort, inte en enda cell.

Exempel # 3

Vi kan radera raden på flera sätt. I exemplet ovan har vi raderat raden med CELLS-egenskapen, nu kommer vi att se hur man tar bort med ROWS-egenskapen.

Nu måste vi nämna vad som är raden vi behöver ta bort, låt oss säga att vi måste ta bort 5: e raden.

Använd nu egenskapen “EntireRow”.

Efter att ha valt fastigheten vad vi behöver göra, dvs metod. Vi måste ta bort raden.

Koda:

 Sub DeleteRow_Example3 () Rader (5) .EntireRow. Radera End Sub 

Så den här koden tar bort den 5: e raden.

Exempel # 4

Ta bort flera rader med hjälp av intervallobjekt

Hur tar vi bort flera rader?

Vi kan använda VBA RANGE-objektet för att ta bort mer än en rad. Antag att du har några värden från A1 till A6-celler.

Nu vill jag radera de första 5 raderna, så jag kan referera till dessa rader genom att använda Range-objekt som "Range (" A1: A5 ")"

Koda:

 Sub DeleteRow_Example4 () Range ("A1: A5") End Sub 

Nu vill jag använda ordet ”EntireRow” -egenskap.

Koda:

 Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow End Sub 

I hela denna rad måste vi utföra metoden för att radera, så använd Delete-metoden.

Koda:

 Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow. Radera End Sub 

Nu raderas de valda raderna.

Exempel # 5

Ta bort rader baserat på cellvärde

Vi kan också använda denna "EntireRow.Delete" -metod för att radera raden baserat på cellvärde i VBA. Till exempel har jag Ja & Nej-värden från cell A1 till A10.

Nu måste vi ta bort raderna som har värdet ”Nej”. För att utföra denna uppgift måste vi använda funktionen ”IF” med slingor för att radera alla rader som har värdet ”Nej”.

Nedanstående kod kommer att göra jobbet för oss.

Koda:

 Sub DeleteRow_Example5() Dim k As Integer For k = 10 To 1 Step -1 If Cells(k, 1).Value = "No" Then Cells(k, 1).EntireRow.Delete End If Next k End Sub 

Example #6

Delete All the Blank Cells Rows

There are situations where we need to delete the entire row if any of the cells in the range is blank. For example, I have below set of data.

All the colored cells are blank, so I need to delete the entire row. We can perform this task with two sets of code. Below is the code.

Code:

 Sub DeleteRow_Example6() Range("A1:F10").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

This will identify the blank cells in the range A1 to F10.IF any blank cells found will delete the entire row.

The problem with this code is it will only delete the blank cell’s row only in the range A1 to F10, but if any cells are blank in any other cells it will not delete. So keeping this in mind I have written one more code.

Code:

 Sub DeleteRow_Example7() Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox("Please select the range", "Blank Cells Rows Deletion", Type:=8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

When you run this code firstly it will ask you to select the range with an input box appearing in front of you.

After selecting the range you need to click on OK, it will delete all the blank cells rows in the selected range.