Tässä opetusohjelmassa esitellään eri tapoja poistaa rivejä ja sarakkeita Excelissä VBA:n avulla.
Poista koko rivi tai sarake
Poistaaksesi kokonaisen rivin VBA:ssa käytä tätä koodiriviä:
Rows(1).Delete
Huomaa, että käytämme rivin poistamiseen Delete-metodia.
Rows-objektiin viittaamisen sijaan voit viitata riveihin niiden Range-objektiin perustuen EntireRow-metodilla:
Range("a1").EntireRow.Delete
Koko sarakkeen poistamiseen voit vastaavasti käyttää näitä koodirivejä:
Columns(1).Delete
Range("a1").EntireColumn.Delete
Poista useita rivejä tai sarakkeita
Käyttämällä samaa logiikkaa voit myös poistaa useita rivejä kerralla:
Rows("1:3").Delete
tai sarakkeita:
Columns("A:C").Delete
Huomaa, että tässä viitataan tiettyihin rivien ja sarakkeiden numeroihin / kirjaimiin lainausmerkeillä ympäröityinä.
Voit tietysti viitata myös alueen EntireRow:
Range("a1:a10").EntireRow.Delete
Huomautus: Alla olevat esimerkit havainnollistavat vain rivien poistamista, mutta kuten yllä näkyy, syntaksi on käytännössä identtinen sarakkeiden poistamiseen.
Tyhjien/tyhjien rivien poistaminen
Tämä esimerkki poistaa rivin, jos koko rivi on tyhjä:
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
Tässä hyödynnetään Excelin laskentataulukkotoimintoa: COUNTA.
Poista rivi, jos solu on tyhjä
Tässä poistetaan rivi, jos tietty sarake kyseisellä rivillä on tyhjä (tässä tapauksessa sarake B):
Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Poista rivi solun arvon perusteella
Tässä kierretään läpi alue ja poistetaan rivejä, jos tietyn solun arvossa kyseisellä rivillä lukee ”poista”.
Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub
Lisää esimerkkejä rivin ja sarakkeen poistamisesta
Poista päällekkäiset rivit
Tämä koodi poistaa kaikki päällekkäiset rivit alueelta:
Range("b2:c100").RemoveDuplicates Columns:=2
Huomaa, että asetimme Columns:=2. Tämä kertoo VBA:lle, että se tarkistaa molemmat kaksi ensimmäistä saraketta harkitessaan, ovatko rivit päällekkäisiä. Kaksoiskappale löytyy vain silloin, kun molemmissa sarakkeissa on päällekkäisiä arvoja.
Jos olisimme asettaneet tämän arvoksi 1, vain ensimmäinen rivi olisi tarkistettu päällekkäisten arvojen varalta.
Taulukon rivien poistaminen
Tämä koodi poistaa toisen rivin Taulukosta viittaamalla ListObjectsiin.
ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete
Poista suodatetut rivit
Poista vain rivit, jotka ovat näkyvissä suodatuksen jälkeen:
Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Poista rivit alueelta
Tämä koodi poistaa kaikki alueen rivit:
Range("a1:a10").EntireRow.Delete
Delete Selected Rows
Tämä koodi poistaa kaikki valitut rivit:
Selection.EntireRow.Delete
Delete Last Row
Tämä koodi poistaa sarakkeesta B viimeiseksi käytetyn rivin:
Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete
Muuttamalla 2:n 1:ksi voit poistaa sarakkeesta A viimeiseksi käytetyn rivin jne.:
Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete
Sarakkeiden poistaminen numeron mukaan
Poistaaksesi sarakkeen sen numeron mukaan, käytä tällaista koodia:
Columns (2).Delete