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.