I Excel kan du slette en rad ved å høyreklikke på nummeret på raden og deretter velge Slett. Men når du vil slette rader ved hjelp av mer sofistikerte metoder, må DU bruke VBA. Det vil tillate deg å slette rader på mange forskjellige måter.
Slett en bestemt rad
den mest grunnleggende måten å slette en rad I VBA er ved å bruke radnummeret.
Sub deleteSpecificRow()Rows(4).DeleteEnd Sub
dette vil slette den fjerde raden hver gang du kjører makroen.
Slett flere rader
du kan også slette noen rader samtidig. I stedet for å velge radnummeret, velger du et område med rader.
Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub
det vil slette rader 2, 3 og 4.
Slett valgte rader
Så langt har vi opprettet makroer som slettet rader med faste tall inne i koden. Denne gangen, la oss slette rader fra et utvalg. La oss bruke følgende kode.
Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub
Slett tomme rader
I dette eksemplet Identifiserer Excel hvilke celler som er tomme, velger dem og fjerner radene de er til stede i.
Sub deleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub
denne makroen sletter rader fra markering bare hvis den inneholder uttrykket»Ugyldig Rad».
FORSIKTIG
Husk at tekst er saksfølsom.
Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub
Kodeanalyse
2. Sløyfen går gjennom hvert element i utvalget.
3. Excel kontrollerer den faktiske celleverdien og hvis verdien er nøyaktig «Dårlig Rad».
4. Hvis betingelsen er oppfylt, fjerner Excel innholdet i cellen. Vi kan ikke slette celle fordi celleposisjonen endres, og noen av «Dårlige Rader» kan forbli.
7. Når alle «Dårlige Rader» er fjernet, Velger Excel disse cellene.
8. Deretter sletter rader av disse cellene.
hvis du også vil slette de radene som består av denne setningen, og ikke bare den nøyaktige kampen, bruk InStr-funksjonen. Denne funksjonen returnerer posisjonen til den første forekomsten av uttrykket.
Endre
Cell.Value = "Bad Row"
til
InStr(Cell, "Bad Row") > 0
vi har fire forskjellige eksempler i regnearket vårt. Hver av dem returnerer en posisjon.
- «Dårlig Rad» returnerer 1
- «God Rad» returnerer 0
- «1 Dårlig Rad» returnerer 3
- » Dårlig Rad !»returnerer 1
det betyr at alle rader, men «God Rad» vil bli fjernet.
Slett rad der celletypen er en streng
i dette eksemplet vil vi slette en rad hvis celletypen er en streng.
ved første øyekast ser cellene A3, A4 og A5 ut til å være av samme type. Men når du ser på hva som skjer bak kulissene (Ctrl+`) vil du se at hver av dem er annerledes.
Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub
i den andre linjen har du følgende kode: xlCellTypeConstants. Det betyr at vi søker etter konstanter. Nummer 2 betyr den andre typen, som er tekst.
Excel velger bare verdier av typen tekst.
resultatet.
Slett jevne/odde rader
la oss nå slette bare de radene som er like.
Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub
koden er veldig lik den fra forrige eksempel. Det er bare en forskjell.
Celle.Row Mod 2 = 0
dette betyr, hvis resten etter divisjon er 0 (for tall: 2, 4, 6, 8, …) da er tallet jevnt, hvis det er 1 så er det et oddetall (1, 3, 5, 6, …).
Regneark og Python-entusiast.