Hvordan slette like rader i Excel Bruke VBA

Hvordan slette like rader i Excel Bruke VBA


Visse regneark brukes og oppdateres mye. Disse ofte er fylt med data som er gjentatt flere ganger. Det finnes måter å finne og slette alle rader som inneholder det dupliserte data, men en av de mest enkle og automatiske måter å oppnå dette på er med en Visual Basic Macro. Excel inneholder et program for programmering heter Excel VBA, som kan brukes til å lage en rekke makroer-deler av koden er utformet for å gjøre en tilpasset jobb når tilkalt.

Bruksanvisning

Programmering av Macro

1 Åpne regnearket i Excel og åpne VBA editor ved å trykke Alt og F11-tasten på datamaskinen din.

2 Starte et nytt prosjekt ved å høyreklikke arbeidsboken på høyre menyen og velge "Ny" alternativet.

3 Start ny funksjon med "Sub DeleteDuplicateRows ()." Dette informerer VBA kompilator som det er en ny subrutine at det bør være klar over.

4 Lag variablene med følgende kode:

Dim Row As Long
Dim Tell As Long
Dim sammenligne As Variant
Dim Range As Range

Dette forteller systemet til å fravike fire variabler (Row, Count, sammenligning og Range) for å bruke i koden. Du kan bruke hvilken variabel navn være mer fornuftig for deg, men husk å endre dem i senere koden.

5 Sett opp makroen med litt mer grunnleggende kode:

På Error GoTo EndMacro
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Sett Range = Application.Intersect (ActiveSheet.UsedRange, _

ActiveSheet.Columns(ActiveCell.Column))

Application.StatusBar = "Processing Row:" & Format (Rng.Row, "#, ## 0")

Den første gruppen av koden forteller systemet til å kjøre makroen hvis den går inn i noen problemer. Den andre gruppen angir området variable i henhold til det samme som brukeren har valgt.

6 Skriv inn følgende kode:

Count = 0
For Row = Range.Rows.Count Til to trinn -1
Hvis Row Mod 500 = 0 Then

Application.StatusBar = "Processing Row: " & Format(R, "#,##0")

Slutt om

Sammenligne = Range.Cells (Row 1) .Value

Dette forteller systemet til å gå gjennom hver av radene valgt av brukeren, og endre sammenligne variabelen til den raden hver gang den beveger seg på.

7 Skriv inn følgende kode neste:

Hvis V = vbNullString Deretter

If Application.WorksheetFunction.CountIf(Rng.Columns(1), vbNullString) > 1 Then
Rng.Rows(R).EntireRow.Delete
N = N + 1
End If

Ellers

If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then
Rng.Rows(R).EntireRow.Delete
N = N + 1
End If

Slutt om

Disse uttalelsene er de som faktisk forteller systemet å sammenligne sammenligne variabelen til den neste cellen og slette raden hvis de to er de samme.

8 Trykk enter for å sette inn et par nye linjer, og deretter inn i "Next Row". Dette forteller at systemet slutter å se på første rad, og gå til neste.

9 Lukk ut funksjonen med:

EndMacro:

Application.StatusBar = False
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "like rader slettet:" & CSTR (N)

End Sub

Disse siste linjene fortelle systemet hvordan å lukke subrutine ut, og også å vise en nyttig meldingsboks som informerer brukeren om at Macro faktisk gjorde hva det var ment å gjøre.

Bruk av Macro

10 Lagre regnearket. Lagre en andre, sikkerhetskopi før du bruker Macro. Enten kopiere og lime inn filen i en backup-mappen, eller oss "Lagre som" filen for å redde andre kopi du må lukke Excel og åpne den.

11 Klikk og dra markøren rundt den viktigste kolonne med data. Dette er en for som alle oppføringer bør avvike-as in, om alt hadde blitt lagt inn på riktig måte, ville det ikke være noen doble oppføringer.

12 Åpne "Verktøy" -menyen og velg "Makroer". Dette åpner dialogen makroer, slik at du kan velge og kjøre makroen.

1. 3 Velg makro; hvis du brukte eksempelet ovenfor, vil det bli kalt "DelDuplicateR." Trykk deretter på knappen "Kjør". Makro vil kjøre automatisk, og dukke opp en melding om at duplikatene er slettet.

Hint

  • Dette fungerer bare hvis innholdet i de to cellene er nøyaktig det samme. Det vil ikke fungere hvis de avviker med enda et lite beløp.
  • Makroer kan ikke omgjøres bruke "Angre" kommandoen under "Edit" -menyen eller Ctrl og Z. Før du bruker noen makroer, bør du sikkerhetskopiere data for å hindre å miste det helt.