Denne vejledning viser forskellige måder at slette rækker og kolonner i Excel ved hjælp af VBA.
Slet hele rækken eller kolonnen
For at slette en hel række i VBA skal du bruge denne kodelinje:
1 | Rækker (1). Slet |
Bemærk, at vi bruger Slet metode til at slette en række.
I stedet for at henvise til Rækker objekt, kan du henvise til rækker baseret på deres Områdeobjekt med Hele rækken:
1 | Område ("a1"). EntireRow.Delete |
På samme måde for at slette en hel kolonne, skal du bruge disse kodelinjer:
1 | Kolonner (1). Slet |
1 | Område ("a1"). EntireColumn.Delete |
Slet flere rækker eller kolonner
Ved hjælp af den samme logik kan du også slette flere rækker på én gang:
1 | Rækker ("1: 3"). Slet |
eller kolonner:
1 | Kolonner ("A: C"). Slet |
Bemærk her, at vi refererer til de specifikke række og kolonne tal / bogstaver omgivet af citater.
Du kan naturligvis også referere til EntireRow af et område:
1 | Område ("a1: a10"). EntireRow.Delete |
Bemærk: Eksemplerne herunder viser kun sletning af rækker, men som du kan se ovenfor, er syntaksen praktisk talt identisk til at slette kolonner.
Slet tomme / tomme rækker
Dette eksempel sletter en række, hvis hele rækken er tom:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Dim celle som områdeFor hver celle i området ("b2: b20")Hvis Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Dereftercell.EntireRow.DeleteAfslut HvisNæste celleAfslut Sub |
Det gør brug af Excel -regnearksfunktionen: COUNTA.
Slet række, hvis cellen er tom
Dette vil slette en række, hvis specifik kolonne i den pågældende række er tom (i dette tilfælde kolonne B):
1 | Område ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Slet række baseret på celleværdi
Dette vil gå gennem et område og slette rækker, hvis en bestemt celleværdi i den række siger "slet".
1234567891011 | Sub DeleteRowswithSpecificValue ()Dim celle som områdeFor hver celle i området ("b2: b20")Hvis cell.Value = "delete" Såcell.EntireRow.DeleteAfslut HvisNæste celleAfslut Sub |
Flere Slet række- og kolonneeksempler
Slet dubletter
Denne kode vil slette alle dublerede rækker i et område:
1 | Område ("b2: c100"). RemoveDuplicates -kolonner: = 2 |
Bemærk, at vi indstiller kolonner: = 2. Dette fortæller VBA at kontrollere begge de to første kolonner med data, når de overvejer, om rækker er dubletter. Et duplikat findes kun, når begge kolonner har dublerede værdier.
Hvis vi havde angivet dette til 1, ville kun den første række være blevet kontrolleret for dublerede værdier.
Slet tabelrækker
Denne kode sletter den anden række i en tabel ved at henvise til ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Slet |
Slet filtrerede rækker
Sådan sletter du kun rækker, der er synlige efter filtrering:
1 | Område ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Slet rækker i området
Denne kode sletter alle rækker i området:
1 | Område ("a1: a10"). EntireRow.Delete |
Slet udvalgte rækker
Denne kode sletter alle markerede rækker:
1 | Selection.EntireRow.Delete |
Slet sidste række
Dette vil slette den sidst anvendte række i kolonne B:
1 | Celler (rækker.tælling, 2) .Slut (xlUp) .EntireRow.Delete |
Ved at ændre 2 til 1 kan du slette den sidst brugte række i kolonne A osv .:
1 | Celler (rækker, antal, 1). Afslut (xlUp) .EntireRow.Delete |
Slet kolonner efter nummer
Hvis du vil slette en kolonne efter dens nummer, skal du bruge en kode som denne:
1 | Kolonner (2). Slet |