Slette en rad med VBA

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.

Innlegg Visninger: 72,354

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.