Rivin poistaminen VBA:n avulla (14 tapaa)

  • Jaa Tämä
Hugh West

Jos etsit joitakin helpoimpia tapoja poistaa rivi käyttämällä apuna VBA , niin olet oikeassa paikassa.

Sukelletaanpa pääartikkeliin.

Lataa työkirja

VBA Poista rivi.xlsm

14 tapaa poistaa rivi VBA:n avulla

Tässä minulla on kolme datataulukkoa, joissa näytetään tapoja poistaa rivejä käyttämällä VBA Ensimmäinen taulukko sisältää joitakin Tuotteet yrityksen ja niiden Koot , Hinnat .

Toisessa on joitakin Tuotekoodit ja niitä vastaavat Tuotteen koot ja Hinnat

Ja viimeinen sisältää joitakin Hankkeen nimet ja niiden Aloituspäivämäärät ja Kustannukset .

Artikkelin luomiseen olen käyttänyt Microsoft Excel 365 versiota, voit käyttää mitä tahansa muita versioita haluamallasi tavalla.

Menetelmä-1: Yhden rivin poistaminen VBA:n avulla

Oletetaan, että haluat poistaa rivin, joka sisältää seuraavat tiedot. Tuote Kenkä 1, ja voit poistaa tämän yksittäisen rivin noudattamalla tätä menetelmää.

Step-01 :

➤Go to Kehittäjä Tab>> Visual Basic Vaihtoehto

Sitten Visual Basic Editor avautuu.

➤Go to Lisää Tab>> Moduuli Vaihtoehto

Sen jälkeen Moduuli luodaan.

Step-02 :

➤ Kirjoita seuraava koodi

 Sub dltrow1() Työarkit("Single").Rows(7).EntireRow.Delete End Sub 

Tässä, "Single" on työarkin nimi ja Rivit(7) valitsee rivinumeron.

.EntireRow.Delete poistaa koko rivin 7.

➤Press F5

Tulos :

Näin poistat rivin, joka sisältää rivin Tuote nimi Kenkä 1 .

Lue lisää: Rivien poistaminen Excelissä: 7 menetelmää

Menetelmä-2: Useiden rivien poistaminen VBA:n avulla

Jos haluat poistaa useita rivejä, kuten rivit, jotka sisältävät rivit Tuote nimet Kenkä1 , Kenkä2, ja Kenkä3 , voit seurata tätä VBA koodi.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Tässä poistetaan rivinumerot 13, 10 ja 7, ja kirjoitettaessa rivinumeroita sarjaan sinun on kirjoitettava viimeisestä rivinumerosta ensimmäisen rivin numeroon tämän koodin mukaisesti.

Muuten ensimmäisen rivin, kuten rivin 7, poistamisen jälkeen tämän rivin alapuolella olevat rivit siirtyvät yhden rivin ylöspäin, jolloin rivistä 10 tulee rivi 9 ja rivistä 13 rivi 12. Tästä syystä et voi poistaa oikeita rivejä.

➤Press F5

Tulos :

Tämän jälkeen poistat rivit, jotka sisältävät tiedot Tuote nimet Kenkä 1 , Kenkä2, ja Kenkä3 .

Lue lisää: Kuinka poistaa useita rivejä Excelissä (3 menetelmää)

Menetelmä-3: Rivin poistaminen valitsemalla

Tässä näytän, miten rivi voidaan poistaa rivin aktiivisen solun osalta.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Se poistaa rivin, jolla on aktiivinen solu.

➤Tallenna koodi.

Step-02 :

➤Valitse mikä tahansa rivin solu, jonka haluat poistaa ( Tässä olen valinnut solun B7 )

➤Go to Kehittäjä Tab>> Makrot Vaihtoehto

Sen jälkeen Makro Ohjattu avautuu.

➤Valitse Makron nimi dltrow3 ja paina Suorita

Tulos :

Tämän jälkeen poistat rivin, joka sisältää rivin Tuote nimi Kenkä 1 .

Menetelmä-4: Kaikkien valinnan rivien poistaminen

Jos haluat poistaa kaikki valinnan rivit, voit noudattaa tätä menetelmää.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Se poistaa kaikki valinnan rivit.

➤Tallenna koodi.

Step-02 :

➤Valitse rivi, jonka haluat poistaa (Tässä olen valinnut alueen, jonka haluat poistaa). B7:D9 )

➤Go to Kehittäjä Tab>> Makrot Vaihtoehto

Sen jälkeen Makro Ohjattu avautuu.

➤Valitse Makron nimi dltrow4 ja paina Suorita

Tulos :

Tämän jälkeen poistat rivit, jotka sisältävät tiedot Tuote nimet Kenkä 1 , Takki1, ja Takki2 .

Lue lisää: Miten poistaa valitut rivit Excelissä (8 lähestymistapaa)

Menetelmä-5: Rivin poistaminen, jos jokin solu on tyhjä

Tässä minulla on tyhjä solu, joka on B9 (olen poistanut arvon tästä solusta tätä menetelmää varten), ja käyttämällä arvoa VBA koodi Poistan rivin, jolla on B9 solu.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Se poistaa kaikki rivit alueella "B5:D13" tyhjä solu.

➤Press F5

Tulos :

Tämän jälkeen voit poistaa tyhjän solun sisältävän rivin.

Lue lisää: Kuinka poistaa tyhjät rivit Excelissä (11 menetelmää)

Menetelmä-6: Rivin poistaminen, jos koko rivi on tyhjä

Tässä minulla on tyhjä solu, joka on B9 (olen poistanut arvot tätä menetelmää varten) ja tyhjä rivi, joka on rivi 12 (olen poistanut arvot tätä menetelmää varten), ja käyttämällä menetelmää VBA koodi ja COUNTA-toiminto Poistan rivin, joka on tyhjä.

Step-01 :

➤Follow Step-01 of Menetelmä-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" on tietojen vaihteluväli ja FOR silmukka toimii tämän alueen jokaisessa solussa.

CountA(cell.EntireRow) palauttaa tyhjien solujen määrän, ja kun se on 0, rivi poistetaan.

➤Press F5

Tulos :

Tämän jälkeen voit poistaa tyhjän rivin, mutta se ei poista mitään riviä, jonka kaikki solut eivät ole tyhjiä.

Lue lisää: VBA:n käyttäminen tyhjien rivien poistamiseen Excelissä

Menetelmä-7: Joka n:nnen rivin poistaminen

Voit poistaa joka n:nnen rivin (tässä tapauksessa joka kolmannen rivin) noudattamalla tätä menetelmää.

Step-01 :

➤Follow Step-01 of Menetelmä-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" on tietojen vaihteluväli ja rc palauttaa tämän alueen rivien kokonaismäärän, joka on 9 .

Täällä FOR silmukka alkaa viimeiseltä riviltä, joka on rc tai 9 tässä tapauksessa ja päättyy ensimmäiseen riviin.

Vaihe -3 auttaa poistamaan kaikki Kolmas rivi tällä alueella.

➤Press F5

Tulos :

Tämän jälkeen poistat rivit, jotka sisältävät tiedot Tuote nimet Kenkä 1 , Kenkä2, ja Kenkä3 .

Lue lisää: Kuinka poistaa joka n:nnen rivin Excelissä (helpoin 6 tapaa)

Samanlaisia lukemia:

  • Valittujen rivien poistaminen Excel VBA: lla (vaiheittainen ohje)
  • Poista käyttämättömät rivit Excelissä (8 helppoa tapaa)
  • Piilotettujen rivien poistaminen Excelissä (3 menetelmää)
  • Poista loputtomat rivit Excelissä (5 helppoa tapaa)
  • Kuinka poistaa rivejä Excelissä, jotka jatkuvat ikuisesti (4 helppoa tapaa)

Menetelmä-8: Rivin poistaminen solun arvon perusteella

Tässä menetelmässä poistan rivin, jolla on tietty arvo. Paita 2 .

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Paita 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" on tietoväli ja FOR silmukka toimii tämän alueen jokaisessa solussa.

Jos jokin rivin solu sisältää arvon "Paita 2" rivi poistetaan.

➤Press F5

Tulos :

Näin poistat rivin, joka sisältää rivin Tuote nimi Paita 2 .

Lue lisää: VBA-makro rivin poistamiseksi, jos solu sisältää arvon Excelissä (2 menetelmää)

Menetelmä-9: Kaksinkertaisten rivien poistaminen

Tässä minulla on kaksi riviä, joilla on Tuotekoodi 97375 ja haluan poistaa yhden näistä riveistä, jotka on merkitty alla olevalla punaisella laatikolla.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Tässä, "B5:D13" on tietojen vaihteluväli ja Sarakkeet:=1 tarkoittaa, että se etsii päällekkäisiä arvoja vain yhdestä sarakkeesta, joka on aloitussarake. Sarake B mutta jos haluat etsiä myös muista sarakkeista, voit käyttää tätä numeroa tarpeidesi mukaan.

➤Press F5

Tulos :

Sen jälkeen voit poistaa rivin, joka on samanlainen kuin toinen rivi.

Lue lisää: Kuinka poistaa päällekkäiset rivit Excelissä VBA: lla (8 tehokasta tapaa)

Menetelmä-10: Taulukon rivien poistaminen

Oletetaan, että sinulla on seuraava taulukko, jonka nimi on Taulukko1 ja nyt haluat poistaa taulukon rivin numero 6. Voit tehdä sen seuraavasti.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Tässä, "Pöytä" on arkin nimi, "Table1" on taulukon nimi ja 6 on taulukon rivinumero, jonka haluat poistaa.

➤Press F5

Tulos :

Näin poistat haluamasi rivin tästä taulukosta.

Lue lisää: Kuinka poistaa päällekkäiset rivit yhden sarakkeen perusteella Excel VBA: n avulla

Menetelmä-11: Näkyvien rivien poistaminen suodatuksen jälkeen

Tässä minulla on datataulukko, joka on suodatettu parametrin Hinta sarakkeessa arvoille, jotka ovat suurempia kuin $1,500.00 ja haluan poistaa kaikki näkyvät rivit suodatuksen jälkeen.

Step-01 :

➤Follow Step-01 of Menetelmä-1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Tässä, "B5:D13" on tietojen vaihteluväli.

➤Press F5

Nyt kaikki suodatuksen jälkeen näkyvät rivit poistetaan. Voit nyt tuoda piilotetut rivit takaisin valitsemalla vaihtoehdon Suodatin merkki Hinta sarake.

➤Click on the Valitse kaikki vaihtoehto

➤Press OK

Tulos :

Lopuksi saat piilotetut rivit takaisin datataulukkoon.

Lue lisää: Kuinka suodattaa ja poistaa rivejä VBA: lla Excelissä (2 menetelmää)

Menetelmä-12: Rivin poistaminen viimeisen aktiivisen solun perusteella

Tässä viimeinen aktiivinen solu on solu B13 ja haluan poistaa tämän, koska se on seuraavan taulukon viimeinen aktiivinen solu.

Step-01 :

➤Follow Step-01 of Menetelmä-1

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

Tässä, 2 tarkoittaa Sarake B jossa minulla on aktiivinen soluni, voit muuttaa numeroa tarpeidesi mukaan.

➤Press F5

Tulos :

Näin poistat viimeisen aktiivisen rivin.

Lue lisää: Excel VBA -koodi rivien poistamiseksi usean solun arvon perusteella (3 kriteeriä)

Menetelmä-13: Minkä tahansa merkkijonon sisältävien rivien poistaminen

Oletetaan, että haluat poistaa rivit, joilla on jokin merkkijono, ja voit tehdä sen noudattamalla tätä menetelmää.

Step-01 :

➤Follow Step-01 of Menetelmä-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 

Tässä, "string" on arkin nimi, tämän tietuealueen ensimmäisen rivin numero on 5 ja alkusarakkeen numero on 2

The Osoitteessa lausekkeen avulla voit määrittää objektin tai käyttäjän määrittelemän tyypin kerran koko lausekesarjaa varten.

On Error Resume Next lauseke määrittää, että kun ajonaikainen virhe tapahtuu, ohjaus siirtyy lauseketta seuraavaan lausekkeeseen, jossa virhe tapahtuu.

LastRow ja LastColumn palauttaa data-alueen viimeisen rivin ja sarakkeen.

SpecialCells(xlCellTypeConstants, xlTextValues) valitsee rivit, joilla on tekstiarvoja alueella.

➤Press F5

Tulos :

Tämän jälkeen poistat rivit, joilla on jokin tekstijono.

Lue lisää: Excel-pikakuvake rivien poistamiseen (bonustekniikoilla)

Menetelmä-14: Rivin poistaminen päivämäärien perusteella

Tässä poistan rivit, joilla on erityinen päivämäärä. 11/12/2021 (mm/dd/yyyyyy) tässä menetelmässä käyttäen menetelmää nimellä DATEVALUE-toiminto .

Step-01 :

➤Follow Step-01 of Menetelmä-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 WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Tässä, "Päivämäärä" on arkin nimi, tämän tietuealueen ensimmäisen rivin numero on 5 ja kriteerisarakkeen (joka sisältää päivämääriä) numero on seuraava 3 .

The Osoitteessa lausekkeen avulla voit määrittää objektin tai käyttäjän määrittelemän tyypin kerran koko lausekesarjaa varten.

On Error Resume Next lauseke määrittää, että kun ajonaikainen virhe tapahtuu, ohjaus siirtyy lauseketta seuraavaan lausekkeeseen, jossa virhe tapahtuu.

LastRow palauttaa data-alueen viimeisen rivin, ja tässä tapauksessa FOR silmukka alkaa viimeiseltä riviltä, joka on LastRow tai 6 ja päättyy ensimmäiseen riviin.

DATEVALUE muuntaa tekstimuotoisen päivämäärän arvoksi.

Tässä, Unioni palauttaa useiden sellaisten alueiden liiton, jotka vastaavat soluja, joissa on päivämäärä. 11/12/2021 ja lopuksi alueet poistetaan.

➤Press F5

Tulos :

Tämän jälkeen poistat rivit, joiden tietty päivämäärä on 11/12/2021 .

Aiheeseen liittyvä sisältö: Excel VBA poistaa rivejä, joissa on tiettyjä tietoja (9 esimerkkiä)

Harjoitusosio

Jotta voit harjoitella itse, olemme toimittaneet Harjoitus osiossa alla olevan kaltaisesti arkissa nimeltä Harjoitus Tee se itse.

Päätelmä

Tässä artikkelissa yritin käsitellä helpoimpia tapoja käyttää VBA tehokkaasti rivien poistamiseen. Toivottavasti se on sinulle hyödyllinen. Jos sinulla on ehdotuksia tai kysymyksiä, voit jakaa ne kommenttiosioon.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.