Vissa kalkylblad används och uppdateras en hel del . Dessa är ofta fyllda med uppgifter som upprepas flera gånger . Det finns sätt att hitta och ta bort alla rader som innehåller det dubbla uppgifter , men en av de mest enkla och automatiska sätt att åstadkomma detta är med ett Visual Basic makro . Excel innehåller en ansökan om programmering kallas Excel VBA , som kan användas för att göra ett obegränsat antal makron - bitar av kod som syftar till att göra ett anpassat jobb när tillkallade . Saker du behöver
Microsoft Excel
Visa fler instruktioner
Programmering Macro
1
Öppna kalkylbladet i Excel och öppna din VBA editorn genom att trycka Alt och F11 på din dator .
2
Starta ett nytt projekt genom att högerklicka arbetsboken på högermenyn och välja " ny " alternativet .
3
Starta den nya funktionen med " sub DeleteDuplicateRows () . " Detta informerar VBA kompilatorn att det finns en ny subrutin som det bör vara medveten om .
4
Skapa variabler med följande kod :
Dim rad som LongDim räknas som LongDim Jämför som VariantDim Range som räckvidd
Detta talar om för systemet att avsätta de fyra variablerna ( Row , greve , Jämförelse och Range ) att använda i koden. Du kan använda vilken variabelnamn gör mer meningsfullt för dig , men kom ihåg att ändra dem i den senare koden
5
Konfigurera makrot med lite mer grundläggande koden : .
On Error Gå EndMacroApplication.ScreenUpdating = FalseApplication.Calculation = xlCalculationManual
Set Range = Application.Intersect ( ActiveSheet.UsedRange , _ActiveSheet.Columns ( ActiveCell.Column ) ) Application.StatusBar = " Processing Row : " & Format ( Rng.Row , " # , # # 0 " ) katalog
den första gruppen av koden talar om för systemet att köra makrot om den körs på några problem . Den andra gruppen sätter Varierande beroende på vad användaren har valt
6
Skriv in följande kod : .
Count = 0For Row = Range.Rows.Count Till 2 Steg - 1If Row Mod 500 = 0 ThenApplication.StatusBar = " Processing Row : " & Format ( R , " # , # # 0 " ) End If
Jämför = Range.Cells ( Rad , 1 ) . Value
Detta talar om för systemet att gå igenom var och en av raderna som valts av användaren , och ändra Jämför variabeln till den raden varje gång det rör sig om .
7
Input följande kod nästa : .
p Om V = vbNullString ThenIf Application.WorksheetFunction.CountIf ( Rng.Columns ( 1 ) , vbNullString ) > 1 ThenRng.Rows ( R ) EntireRow.DeleteN = N + 1End IfElseIf Applikation . WorksheetFunction.CountIf ( Rng.Columns ( 1 ) , V ) > 1 ThenRng.Rows ( R ) . EntireRow.DeleteN = N + 1End IfEnd Om
Dessa uttalanden är de som faktiskt talar om för systemet att jämföra Jämför variabeln till nästa cell och ta bort raden om de två är samma .
8
Tryck enter för att sätta in ett par nya linjer , och skriv sedan in " Next Row " . Detta talar om för systemet att sluta titta på den första raden , och gå vidare till nästa
9
Stäng ut funktionen med : .
EndMacro :
Application . StatusBar = FalseApplication.ScreenUpdating = TrueApplication.Calculation = xlCalculationAutomaticMsgBox " dubbletter borttagna rader : " & CStr ( N ) katalog
End Sub
Dessa slutliga rader talar om för systemet hur man stänger subrutinen ut , och även att visa ett användbart meddelanderuta som informerar användaren om att Macro faktiskt gjorde vad det var tänkt att göra .
Använda Macro
10
Spara kalkylbladet . Spara en sekund , säkerhetskopia innan du använder Macro . Antingen kopiera och klistra in filen i en backup mapp , eller oss " Spara som " filen för att spara den andra kopian , du kommer att behöva stänga Excel och öppna den igen .
11
Klicka och dra markören runt det viktigaste datakolumnen . Detta är den för vilken alla poster bör variera -as in , om allt hade matats in korrekt , skulle det inte finnas några dubbletter .
12
Öppna menyn "Verktyg" och välj " ; makron " Detta öppnar dialogrutan Makron , där du kan välja och köra makrot
13
Välj ditt makro , . om du använde exemplet ovan , kommer det att kallas " . DelDuplicateR " . och trycker sedan på " Kör " knappen . Makrot körs automatiskt , och dyka upp ett meddelande om att dubbletter har tagits bort .