Denne opplæringen vil demonstrere forskjellige måter å slette rader og kolonner i Excel ved hjelp av VBA.
Slett hele raden eller kolonnen
For å slette en hel rad i VBA, bruk denne kodelinjen:
1 | Rader (1). Slett |
Legg merke til at vi bruker Slett metode for å slette en rad.
I stedet for å referere til Rader objekt, kan du referere til rader basert på deres Rekkevidde med Hele raden:
1 | Område ("a1"). EntireRow.Delete |
På samme måte for å slette en hel kolonne, bruker du disse kodelinjene:
1 | Kolonner (1). Slett |
1 | Område ("a1"). EntireColumn.Delete |
Slett flere rader eller kolonner
Ved å bruke den samme logikken kan du også slette flere rader samtidig:
1 | Rader ("1: 3"). Slett |
eller kolonner:
1 | Kolonner ("A: C"). Slett |
Legg merke til at vi refererer til de spesifikke rad- og kolonnetallene / bokstavene omgitt av sitater.
Selvfølgelig kan du også referere til EntireRow av et område:
1 | Område ("a1: a10"). EntireRow.Delete |
Merk: Eksemplene nedenfor viser bare sletting av rader, men som du kan se ovenfor, er syntaksen praktisk talt identisk for å slette kolonner.
Slett tomme / tomme rader
Dette eksemplet sletter en rad hvis hele raden er tom:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Dim cell As RangeFor hver celle i området ("b2: b20")Hvis Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Dacell.EntireRow.DeleteSlutt omNeste celleSlutt Sub |
Den bruker Excel -regnearkfunksjonen: COUNTA.
Slett rad hvis cellen er tom
Dette vil slette en rad hvis den spesifikke kolonnen i den raden er tom (i dette tilfellet kolonne B):
1 | Område ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Slett rad basert på celleverdi
Dette vil gå gjennom et område og slette rader hvis en bestemt celleverdi i den raden sier "slett".
1234567891011 | Sub DeleteRowswithSpecificValue ()Dim cell As RangeFor hver celle i området ("b2: b20")Hvis cell.Value = "delete" Dacell.EntireRow.DeleteSlutt omNeste celleSlutt Sub |
Flere slette rad- og kolonneeksempler
Slett dupliserte rader
Denne koden sletter alle dupliserte rader i et område:
1 | Område ("b2: c100"). RemoveDuplicates -kolonner: = 2 |
Legg merke til at vi setter kolonner: = 2. Dette forteller VBA å sjekke begge de to første kolonnene med data når de vurderer om rader er dubletter. En duplikat blir bare funnet når begge kolonnene har duplikatverdier.
Hvis vi hadde satt dette til 1, ville bare den første raden blitt sjekket for dupliserte verdier.
Slett tabellrader
Denne koden sletter den andre raden i en tabell ved å referere til ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Slett |
Slett filtrerte rader
Slik sletter du bare rader som er synlige etter filtrering:
1 | Område ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Slett rader i området
Denne koden sletter alle radene i området:
1 | Område ("a1: a10"). EntireRow.Delete |
Slett utvalgte rader
Denne koden sletter alle de valgte radene:
1 | Selection.EntireRow.Delete |
Slett siste rad
Dette vil slette den siste brukte raden i kolonne B:
1 | Celler (Rows.Count, 2) .End (xlUp) .EntireRow.Delete |
Ved å endre 2 til 1 kan du slette den siste brukte raden i kolonne A, etc.:
1 | Celler (Rows.Count, 1) .End (xlUp) .EntireRow.Delete |
Slett kolonner etter tall
For å slette en kolonne etter nummeret, bruk en kode som denne:
1 | Kolonner (2). Slett |